我正在为矿山对象进行搜索筛选。但他只显示像确切的结果:Typeof仅显示确切结果
阵列数据:
name => 'foo',
name => 'fa',
name => 'bar',
我所是:
getObjects(array, 'name', 'foo');
如果我搜索的 'F' 我什么也没得到。当我搜索'foo'时,我得到'foo'。我想要的是,如果我在'f'上搜索,我想'foo'和'fa'。
代码
function getObjects(obj, key, val) {
var objects = [];
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
if (typeof obj[i] === 'object') {
objects = objects.concat(getObjects(obj[i], key, val));
} else if (i == key && obj[key] == val) {
objects.push(obj);
}
}
return objects;
}
我想听听您的意见,非常感谢!
请加个例子。你的意思是要比较的关键还是价值? –
不知道你想达到什么,但通过使用“===”,它只会匹配typeof ..甚至2 ===“2”将在条件检查中失败。 –
我编辑了这个问题。 –