Javascript 基于值获取/筛选对象

Javascript 基于值获取/筛选对象,javascript,arrays,object,filter,Javascript,Arrays,Object,Filter,我可以根据值筛选或提取对象的值吗 例如[10,19]将返回比尔和萨姆 [ { "id": 10, "nice_name": "Bill" }, { "id": 12, "nice_name": "Dan"}, { "id": 18, "nice_name": "Tony" }, { "id": 19, "nice_name": "Sam" }, ] 谢谢/您可以使用以下功能: const data = [ { "id": 10, "nice_name": "Bi

我可以根据值筛选或提取对象的值吗

例如[10,19]将返回比尔和萨姆

 [ { "id": 10, "nice_name": "Bill" }, 
    { "id": 12, "nice_name": "Dan"}, 
    { "id": 18, "nice_name": "Tony" },
    { "id": 19, "nice_name": "Sam" }, 
]
谢谢/

您可以使用以下功能:

const data = [ { "id": 10, "nice_name": "Bill" }, 
    { "id": 12, "nice_name": "Dan"}, 
    { "id": 18, "nice_name": "Tony" },
    { "id": 19, "nice_name": "Sam" }, 
]

const result = data.filter(o => ~[10, 19].indexOf(o.id))
// ~[10, 19].indexOf(o.id) is equivalent to [10, 19].indexOf(o.id) > -1
您可以使用以下功能:

const data = [ { "id": 10, "nice_name": "Bill" }, 
    { "id": 12, "nice_name": "Dan"}, 
    { "id": 18, "nice_name": "Tony" },
    { "id": 19, "nice_name": "Sam" }, 
]

const result = data.filter(o => ~[10, 19].indexOf(o.id))
// ~[10, 19].indexOf(o.id) is equivalent to [10, 19].indexOf(o.id) > -1

您可以链过滤,然后映射函数:

const mySearch = [10, 19]
const result = myArray.filter(elem => mySearch.indexOf(elem.id) > -1) // filter by id
                      .map(elem => elem.nice_name) // return the nice_name only for each entry
// result is now ['Bill', 'Sam']

您可以链过滤,然后映射函数:

const mySearch = [10, 19]
const result = myArray.filter(elem => mySearch.indexOf(elem.id) > -1) // filter by id
                      .map(elem => elem.nice_name) // return the nice_name only for each entry
// result is now ['Bill', 'Sam']

仅使用javascript就可以完成类似的操作

var size = a.length; //a -> your array
var inputSize = input.length; // -> the search array
var thePeople = []; //where you will store the names that match
for(var i = 0; i < size; i++) {  //cycle your array
    for(var j = 0; j < inputSize; j++) { //cycle the search array
    if(a[i].id === input[j]) { //check if there is a match on id
        thePeople.push(a[i].nice_name); //save the name into a new array
    }
  }
}
var size=a.length//a->你的阵列
var inputSize=input.length;//->搜索数组
var thePeople=[]//您将在其中存储匹配的名称
对于(var i=0;i

这里有一个小提琴

仅使用javascript,您可以执行类似的操作

var size = a.length; //a -> your array
var inputSize = input.length; // -> the search array
var thePeople = []; //where you will store the names that match
for(var i = 0; i < size; i++) {  //cycle your array
    for(var j = 0; j < inputSize; j++) { //cycle the search array
    if(a[i].id === input[j]) { //check if there is a match on id
        thePeople.push(a[i].nice_name); //save the name into a new array
    }
  }
}
var size=a.length//a->你的阵列
var inputSize=input.length;//->搜索数组
var thePeople=[]//您将在其中存储匹配的名称
对于(var i=0;i

这里有一个小提琴索引,用于查找数组中的元素

arr=[{“id”:10,“好名字”:“Bill”},
{“id”:12,“好名字”:“Dan”},
{“id”:18,“好名字”:“Tony”},
{“id”:19,“好名字”:“Sam”},
]
变量填充=[10,19];
var ans=[];
arr.map(功能(a){
if(fill.indexOf(a[“id”])>-1)
推(一个[好名字]);
})
控制台日志(ans)
*{
背景颜色:粉红色;

}
在数组中查找元素的索引

arr=[{“id”:10,“好名字”:“Bill”},
{“id”:12,“好名字”:“Dan”},
{“id”:18,“好名字”:“Tony”},
{“id”:19,“好名字”:“Sam”},
]
变量填充=[10,19];
var ans=[];
arr.map(功能(a){
if(fill.indexOf(a[“id”])>-1)
推(一个[好名字]);
})
控制台日志(ans)
*{
背景颜色:粉红色;

}
可以使用单个reduce而不是filter.map链

var arr=[{“id”:10,“好名字”:“Bill”},
{“id”:12,“好名字”:“Dan”},
{“id”:18,“好名字”:“Tony”},
{“id”:19,“好名字”:“Sam”},
],
src=[10,19],
结果=arr.reduce((r,o)=>src.includes(o.id)?r.concat(o.nice_name):r,[]);

控制台日志(结果)可以使用单个reduce而不是filter.map链

var arr=[{“id”:10,“好名字”:“Bill”},
{“id”:12,“好名字”:“Dan”},
{“id”:18,“好名字”:“Tony”},
{“id”:19,“好名字”:“Sam”},
],
src=[10,19],
结果=arr.reduce((r,o)=>src.includes(o.id)?r.concat(o.nice_name):r,[]);

控制台日志(结果)只有代码答案是好的,但如果有文档记录会更好。只有代码答案是好的,但如果有文档记录会更好。