是否有任何工具可供创建:
[ 'John', 'Sam', 'Marry' ]
从:
[ { name: 'John' }, { name: 'Sam' }, { name: 'Marry' } ]
答案 0 :(得分:11)
是的,map()
method:
var array = [{name: 'John'}, {name: 'Sam'}, {name: 'Mary'}].map(function (val) {
return val.name;
});
var array = jQuery.map([{name: 'John'}, {name: 'Sam'}, {name: 'Mary'}], function (val) {
return val.name;
});
答案 1 :(得分:4)
该工具称为for循环。非jQuery解决方案。
var myArray = [];
var myObj = [ { name: 'John' }, { name: 'Sam' }, { name: 'Marry' } ];
for( var x in myObj ) {
myArray.push( myObj[x].name );
}
alert( myArray.join(",") );
答案 2 :(得分:2)
如果您不介意使用Underscore.js(包含更多实用程序功能),pluck
功能就是您所需要的。
var names = _.pluck(array, "name");
答案 3 :(得分:1)
var input=[ { name: 'John' }, { name: 'Sam' }, { name: 'Marry' } ];
var output=[];
$.each(input, function (index, value){
output.push(value.name);
});
使用for(...)如上面的几个答案中所示可以正常工作,但是您也冒着添加不想要这种方式的成员的风险,或者在尝试获取名称时遇到一些错误来自没有该财产的会员的财产。请参阅:Why is using "for...in" with array iteration a bad idea?
答案 4 :(得分:0)
var input=[ { name: 'John' }, { name: 'Sam' }, { name: 'Marry' } ];
var output=[];
for (var i in input) output[output.length]=i.name;
答案 5 :(得分:0)
var newArr = [];
for (var i = 0, max = arr.length; i < max ; i++) {
newArr.push(arr[i].name);
}
以上工作不需要任何库,即使有人使用对象原型进行操作仍然可以正常工作