Javascript 基于值获取/筛选对象
我可以根据值筛选或提取对象的值吗 例如[10,19]将返回比尔和萨姆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
[ { "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,[]);
控制台日志(结果)代码>只有代码答案是好的,但如果有文档记录会更好。只有代码答案是好的,但如果有文档记录会更好。