Javascript: 如何在对象数组中查找键名
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\");
原因:问题的提出者想要知道如何在一个对象数组中找到键名。
解决方法:使用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函数或编写自己的函数,可以在对象数组中找到指定键名的值。这样的实践可以帮助提高编程技能。