gpt4 book ai didi

javascript根据搜索词查找对象

转载 作者:搜寻专家 更新时间:2023-11-01 00:34:26 24 4
gpt4 key购买 nike

我需要使用搜索词对象搜索对象数组,并在数组中获取结果索引。

假设我有一个这样的数组:

[
{
name: "Mary",
gender: "female",
country: "USA",
orientation: "straight",
colorChoice: "red",
shoeSize: 7
},
{
name: "Henry",
gender: "male",
country: "USA",
orientation: "straight",
colorChoice: "red",
},
{
name: "Bob",
colorChoice: "yellow",
shoeSize: 10
},
{
name: "Jenny",
gender: "female",
orientation: "gay",
colorChoice: "red",
}
]

现在我需要在数组中搜索:

{
gender: "female"
}

并得到结果:

[ 0, 3 ]

搜索对象可以是任意长度:

{
gender: "female",
colorChoice: "red"
}

什么是搜索数组最干净、最高效的方法?

谢谢。

最佳答案

思路是这样的:

function getFemales(myArr){
var i = myArr.length, ret = [];
while (i--){
if ('gender' in myArr[i] && myArr[i].gender === 'female') {
ret.push(i);
}
}
return ret.sort();
}

参见 jsfiddle

更通用:

function findInElements(elArray, label, val){
var i = elArray.length, ret = [];
while (i--){
if (label in elArray[i] && elArray[i][label] === val) {
ret.push(i);
}
}
return ret.sort();
}

参见 jsfiddle

关于javascript根据搜索词查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com