gpt4 book ai didi

javascript - 如何从具有部分索引值的对象获取值javascript

转载 作者:行者123 更新时间:2023-11-28 17:43:15 24 4
gpt4 key购买 nike

我有一个包含很多键和值的对象。我可以使用索引获得任何值。但是我没有完整的索引,我有一部分,我是否能够根据索引的一部分获取值。

示例:

c = {'select':'MyValue',...}

我可以使用索引获取值,如下所示:

c['select'] = 'MyValue'

我尝试创建这个搜索精确值的函数:

function search(nameKey, c){
for (var i=0; i < c.length; i++) {
if (c[i].select === nameKey) {
return c[i];
}
}
}

c['select'] 将返回 'MyValue' 但我需要执行类似 c['Sel']c['select']c['Select']c['selected'] 返回相同的 'MyValue'

最佳答案

嗯,逻辑似乎不是很清楚,并且与如何匹配key也不太相关。

但是这个函数可能对您展示的特定情况有所帮助:

function search(nameKey, obj) {
if (obj.hasOwnProperty(nameKey)) {
return obj[nameKey];
} else {
var res = Object.keys(obj).filter(function(k) {
return (k.toLowerCase().indexOf(nameKey.toLowerCase()) > -1) || (nameKey.toLowerCase().indexOf(k.toLowerCase()) > -1);
});
return res ? obj[res] : false;
}
}

说明:

  • 首先我们使用Object#hasOwnProperty()为了检查对象是否将搜索到的名称作为键/属性,我们返回它的值,这将避免循环所有键。
  • 否则我们使用 Object.keys()获取对象的键。
  • 然后我们使用Array#filter()方法通过 keys 数组检查是否存在相关的 key返回它的值,否则我们返回 false

演示:

function search(nameKey, obj) {
if (obj.hasOwnProperty(nameKey)) {
return obj[nameKey];
} else {
var res = Object.keys(obj).filter(function(k) {
return (k.toLowerCase().indexOf(nameKey.toLowerCase()) > -1) || (nameKey.toLowerCase().indexOf(k.toLowerCase()) > -1);
});
return res ? obj[res] : false;
}
}
var c = {
'select': 'MyValue'
};
console.log(search("Sel", c));

关于javascript - 如何从具有部分索引值的对象获取值javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47422766/

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