从对象数组创建值数组
Create array of values from array of objects
有什么工具可以创建吗:
[ 'John', 'Sam', 'Marry' ]
来自:
[ { name: 'John' }, { name: 'Sam' }, { name: 'Marry' } ]
map()
方法:
var array = [{name: 'John'}, {name: 'Sam'}, {name: 'Mary'}].map(function (val) {
return val.name;
});
或jQuery的版本:
var array = jQuery.map([{name: 'John'}, {name: 'Sam'}, {name: 'Mary'}], function (val) {
return val.name;
});
该工具被称为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(",") );
如果您不介意使用Undercore.js(它由更多的实用函数组成),那么pluck
函数就是您想要的。
var names = _.pluck(array, "name");
var input=[ { name: 'John' }, { name: 'Sam' }, { name: 'Marry' } ];
var output=[];
$.each(input, function (index, value){
output.push(value.name);
});
使用上面几个答案中所示的for(…)可以很好地工作,但您也会冒着以这种方式添加不想要的成员的风险,或者在尝试从没有该属性的成员获取name属性时遇到一些错误。参见:为什么使用";对于在";数组迭代是个坏主意吗?
var input=[ { name: 'John' }, { name: 'Sam' }, { name: 'Marry' } ];
var output=[];
for (var i in input) output[output.length]=i.name;
var newArr = [];
for (var i = 0, max = arr.length; i < max ; i++) {
newArr.push(arr[i].name);
}
上面的工作不需要任何库,即使有人篡改了对象原型
相关文章:
- 从多维嵌套json数组创建下拉列表
- 为对象数组创建列表项
- 如何在cycle js中从JSON数组创建组件
- 使用数据数组创建多个类似组件
- 如何在 Angular JS 中从关联数组创建多个复选框
- 如何为给定数组创建跨度列表
- 如何在javascript中使用2个一维数组创建层次结构树
- 从数据对象数组创建折线图
- 从 javascript 数组创建一个 Jquery 数组
- Angular2从数组创建一个列表
- 使用JavaScript's Reduce从对象数组创建数组
- 如何从数组创建 jqtree
- 从字符串数组创建唯一组合数组
- 反应.js通过数组创建循环
- 从数组创建新元素,直到每秒数组为空
- 如何使用其他流的值数组创建流
- JavaScript:从字节数组创建图像资源
- 使用拆分字符串的数组创建一个对象
- 从一组数据或数组创建对象
- 多维数组 - 创建一个表