如何修改JS函数使其返回对象中模糊匹配的key而非对应值
你当前的函数匹配成功后返回的是objectToSearch[k],也就是匹配键对应的取值,只需要将返回内容替换为循环变量k即可得到匹配到的键本身。
修改后的代码如下:
function matchKey(objectToSearch, keyToFind) { for (var k in objectToSearch) { if ( k.toLowerCase().indexOf(keyToFind.toLowerCase()) !== -1) return k; } return null; } matchKey({year : 2015, "Price/STK" : "value"}, "price"); // 输出结果为 "Price/STK"
如果需要返回所有符合匹配规则的键,而非第一个匹配到的结果,可以使用数组收集匹配结果:
function matchAllKeys(objectToSearch, keyToFind) { const matchedKeys = []; const targetKey = keyToFind.toLowerCase(); for (var k in objectToSearch) { if (k.toLowerCase().indexOf(targetKey) !== -1) { matchedKeys.push(k); } } return matchedKeys.length ? matchedKeys : null; }
内容的提问来源于stack exchange,提问作者user16756868
相关产品推荐
相关产品推荐

