配列方法:filter()とfind()の使い分け
2621 ワード
1.filter()の使い方の詳細
アプリケーションシーン1:オブジェクト配列Aがあると仮定して、取得配列に指定された種類のオブジェクトをB配列に配置します.
アプリケーションシーン3:オブジェクトAと配列Bがあると仮定し、A中のID値に基づいて、B中の該当しないデータをフィルタリングする.
2.find()用法の詳細解
アプリケーションシーン1:オブジェクト配列Aがあると仮定し、条件に該当するオブジェクトを見つけます.
注:find()最初の要素を見つけたら、その後ろの要素を遍歴することはないので、もし配列の中に同じ二つの要素があるなら、彼は第一個だけを見つけます.第二個はもう遍歴しません.
アプリケーションシーン2:オブジェクト配列Aがあると仮定し、指定されたオブジェクトの条件に従って配列中の条件に該当するオブジェクトを見つけます.
アプリケーションシーン1:オブジェクト配列Aがあると仮定して、取得配列に指定された種類のオブジェクトをB配列に配置します.
var products = [
{
name: "cucumber",
type: "vegetable"
},
{
name: "apple",
type: "fruit"
},
{
name: "orange",
type: "fruit"
}
];
var filters = products.filter(function(item) {
return item.type == "fruit";
});
console.log(filters);
//結果:「{name:「apple」、type:「flut」、{name:「orange」、type:「fuit」}の応用シーン2:対象配列Aがあると仮定して、条件を満たさない対象をフィルタリングします.条件:果物、価格は10未満で、数量は0より大きいです.var products = [
{
name: "cucumber",
type: "vegetable",
quantity: 10,
price: 5
},
{
name: "apple",
type: "fruit",
quantity: 0,
price: 5
},
{
name: "orange",
type: "fruit",
quantity: 1,
price: 2
}
];
var filters = products.filter(function(item) {
// &
return item.type === "fruit" && item.quantity > 0 && item.price < 10;
});
console.log(filters);
//結果:「{name:「orange」、type:「fuit」、quantity:1、price:2]」アプリケーションシーン3:オブジェクトAと配列Bがあると仮定し、A中のID値に基づいて、B中の該当しないデータをフィルタリングする.
var post = { id: 1, title: "A" };
var comments = [
{ postId: 3, content: "CCC" },
{ postId: 2, content: "BBB" },
{ postId: 1, content: "AAA" }
];
function commentsPost(post, comments) {
return comments.filter(function(item) {
return item.postId == post.id;
});
}
console.log(commentsPost(post, comments));
//結果:[{postId:1,content:"AAA"]は、配列の注意を返します.filterとfindの違い:filterは配列を返し、findはオブジェクトを返します.2.find()用法の詳細解
アプリケーションシーン1:オブジェクト配列Aがあると仮定し、条件に該当するオブジェクトを見つけます.
var users = [
{ name: "jack", age: 12 },
{ name: "alex", age: 15 },
{ name: "eva", age: 20 }
];
var user = users.find(function(item) {
return (item.name = "eva");
});
console.log(user);
//結果:{name:「eva」、age:20}注:find()最初の要素を見つけたら、その後ろの要素を遍歴することはないので、もし配列の中に同じ二つの要素があるなら、彼は第一個だけを見つけます.第二個はもう遍歴しません.
アプリケーションシーン2:オブジェクト配列Aがあると仮定し、指定されたオブジェクトの条件に従って配列中の条件に該当するオブジェクトを見つけます.
var post = { id: 1, title: "AAA" };
var comments = [
{ postId: 3, content: "CCC" },
{ postId: 2, content: "BBB" },
{ postId: 1, content: "AAA" }
];
function commentsPost(post, comments) {
return comments.find(function(item) {
return item.postId == post.id;
});
}
console.log(commentsPost(post, comments));
//結果:{postId:1,content:「AAA」}は、オブジェクトを返します.