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

use*_*353 1 javascript arrays lodash

我有一个数组:

[
    {
        meta:'abc'
        data:
        {
            name:'asd',
            title: 'bbb'
        }
    },
    {
        meta:'abc'
        data:
        {
            name:'asd',
            title: 'bbb'
        },
    {
        meta:'abc'
        data:
        {
            name:'asd',
            title: 'bbb'
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

我想将它转换为新数组,它将是:

[
    {
        name:'asd',
        title: 'bbb'
    },
    {
        name:'asd',
        title: 'bbb'
    {
        name:'asd',
        title: 'bbb'
    }
]
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Ale*_* T. 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'));
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.2.0/lodash.js"></script>
Run Code Online (Sandbox Code Playgroud)


Chr*_*sch 5

您只需要数组的 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};
});
Run Code Online (Sandbox Code Playgroud)