Javascript: 如何在对象数组中查找键名

14 浏览
0 Comments

Javascript: 如何在对象数组中查找键名

我正在尝试确定一个对象数组中是否存在一个指定名称的键。举个例子,我要如何验证名为\'name\'的键是否等于我在函数调用中传递的参数?下面的代码进一步阐明了这一点。\nvar stooges = [{name: \'moe\', age: 40}, {name: \'larry\', age: 50}, {name: \'curly\', age: 60}];\nvar test = function(arr, propName){\nvar result = [];\nfor(var i = 0; i < arr.length; i++){\n if(arr[i][propName] === propName){\n result.push(arr[i][propName]);\n }\n}\nreturn result;\n} \nfunc(stooges, \"name\");

0
0 Comments

原因:问题的提出者想要知道如何在一个对象数组中找到键名。

解决方法:使用underscore.js库的pluck函数可以实现。首先,通过传入对象数组和键名作为参数,pluck函数可以返回一个包含指定键名对应值的新数组。如果想要自己编写类似的函数,可以使用map方法遍历对象数组,并返回指定键名对应的值。如果数组未定义,则返回一个空数组。同时,也可以通过阅读underscore源代码来了解更高级的实现方式。

以下是问题解决的示例代码:

function pluck(array, prop) {
    return array.map(function(entry) {
        return entry[prop];
    });
}
// 更安全的写法,如果数组未定义,则返回一个空数组
function pluck(array, prop) {
    return array ? array.map(function(entry) {
        return entry[prop];
    }) : [];
}

以上是问题的原因和解决方法的整理。通过使用underscore.js的pluck函数或编写自己的函数,可以在对象数组中找到指定键名的值。这样的实践可以帮助提高编程技能。

0