如何从子对象属性创建新数组

时间:2016-02-03 15:34:57

标签: javascript arrays lodash

我有一个数组:

[
    {
        meta:'abc'
        data:
        {
            name:'asd',
            title: 'bbb'
        }
    },
    {
        meta:'abc'
        data:
        {
            name:'asd',
            title: 'bbb'
        },
    {
        meta:'abc'
        data:
        {
            name:'asd',
            title: 'bbb'
        }
    }
]

我想将其转换为新数组,即:

[
    {
        name:'asd',
        title: 'bbb'
    },
    {
        name:'asd',
        title: 'bbb'
    {
        name:'asd',
        title: 'bbb'
    }
]

我想只获取数据元素,并从中创建一个新数组。 我怎么能以最快的方式做到这一点?我怎么能用lodash来做呢?

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以使用_.map



var array = [{
  meta: 'abc',
  data: {
    name: 'asd',
    title: 'bbb'
  }
}, {
  meta: 'abc',
  data: {
    name: 'asd',
    title: 'bbb'
  }
}, {
  meta: 'abc',
  data: {
    name: 'asd',
    title: 'bbb'
  }
}];

console.log(_.map(array, 'data'));

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.2.0/lodash.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您需要的是map()本机javascript方法到数组:

//considere that 'someArray' is the same as your.

var newArray = someArray.map(function(item){
    return {name: item.data.name, title: item.data.title};
});