将javascript对象成员投影到数组中

时间:2015-10-30 16:24:31

标签: javascript jquery angularjs

我有一个如下对象:

asset: {
    images []
}

图片看起来像这样:

image {
    width,
    height,
    fileName
}

我需要将所有图像文件名投影到一个数组中。明显的实现如下:

var fileNames = [];
var i;
for (i = 0; i < asset.images.length; i++) {
    fileNames.push(asset.images[i].fileName);
}

有人知道在1或2行中这样做的奇特方法吗?您可以使用jQuery或angularJs

2 个答案:

答案 0 :(得分:1)

var fileNames = asset.images.map(function(i) {
  return i.fileName;
});

这是在数组的每个元素上运行一组指令的最快方法。

答案 1 :(得分:0)

asset.images.map(function(i) {return i.fileName;};);

var asset = {};
asset.images = [];
asset.images.push({fileName: "test1"});
asset.images.push({fileName: "test2"});
asset.images.push({fileName: "test3"});
asset.images.push({fileName: "test4"});


alert(asset.images.map(function(i) {return i.fileName;}));