只是感到困惑而不确定为什么我的代码无法正常工作。这些指令将获取一个对象数组和一个属性名称,并返回一个包含每个对象的命名属性的数组。
所以像pluck([{a:1}, {a:2}], 'a') // -> [1,2]
这样的东西,其中pluck是我要创建的函数。
到目前为止,我有:
function pluck(objs, name) {
var pushedArray=[];
for (i=0;i<objs.length;i++){
var totalpushedArray = pushedArray.push(name[i]);
}
}
但据我所知,代码本身无法正常工作。如果对象不具有该属性,则还有其他准则可以保留
undefined
,但是我认为在我先解决此问题后,我会去做。 最佳答案
您忘记添加return语句,并且没有引用object属性。见下文。
function pluck(objs, name) {
var pushedArray = [];
for (var i = 0; i < objs.length; i++) {
pushedArray.push(objs[i][name]);
}
return pushedArray;
};
如果您需要更“实用”的解决方案,则可以使用map。
function pluck(objs, name) {
return objs.map(function(obj) {
return (obj.hasOwnProperty(name) ? obj[name] : null);
});
};