gpt4 book ai didi

javascript - 有没有办法搜索对象内的特定键然后记录结果?

转载 作者:行者123 更新时间:2023-12-02 23:43:11 29 4
gpt4 key购买 nike

我正在尝试弄清楚如何搜索对象以检查是否与搜索值匹配。从那里我想列出哪些对象匹配。

对于此示例,我想搜索 name1name2 并查看它们中的任何一个的 options 值是否为 C 。如果存在匹配,则列出与搜索匹配的对象。如果搜索值是 A,那么它将仅显示 name1

我尝试使用数据设置 myObject,但我不确定如何循环访问该对象,请检查 options 键的特定值来比较它们随着搜索。

let myObject = {
name1: {
title: 'Mr',
options: ['A', 'B', 'C'],

},

name2: {
title: 'Mrs',
options: ['C', 'D', 'E'],

}
};


function myFunction() {

var optionSearch = 'C';

console.log(optionSearch);
for (var i = 0; i < myObject.length; i++) {
if (myObject[i].options == optionSearch)
console.log(myObject[i] + ' is equal to optionSearch');
else {
console.log('No match');
}
}
}

myFunction();

最佳答案

对象没有默认的length属性。因此,您不能将 for 循环与数字索引一起使用。您可以改为使用 for...in像这样循环访问对象:

let myObject = {
name1: {
title: 'Mr',
options: ['A', 'B', 'C'],
},
name2: {
title: 'Mrs',
options: ['C', 'D', 'E']
}
};

function myFunction(optionSearch) {
for (var key in myObject) {
if (myObject[key].options.includes(optionSearch))
console.log(key + ' has : ' + optionSearch)
}
}

myFunction('C')
myFunction('A')

您还可以filter具有 options 值的键 includes给定的选项

let myObject = {name1:{title:'Mr',options:['A','B','C'],},name2:{title:'Mrs',options:['C','D','E'],}};

function getKeys(obj, option) {
return Object.keys(obj).filter(k => obj[k].options.includes(option))
}

console.log(getKeys(myObject, 'C')) // [ "name1", "name2"]
console.log(getKeys(myObject, 'A')) // [ "name1" ]

关于javascript - 有没有办法搜索对象内的特定键然后记录结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55967895/

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