Javascript 获取两个数组中第一个对象的属性

Javascript 获取两个数组中第一个对象的属性,javascript,Javascript,我有两个对象数组: var books = [ { id: 1, name: 'Book A' }, { id: 2, name: 'Book B' } ]; var cars = [ { id: 1, name: 'Car A' }, { id: 2, name: 'Car B' }, { id: 3, name: 'Car C' }, ]; 我需要创建一个字符串数组,其中包含: 1.书籍中第一本书的名称(如果有) 2.车内前两辆车的名称(如有) 我可以做到: if (

我有两个对象数组:

var books = [
  { id: 1, name: 'Book A' },
  { id: 2, name: 'Book B' }
];

var cars = [
  { id: 1, name: 'Car A' },
  { id: 2, name: 'Car B' },
  { id: 3, name: 'Car C' },
];
我需要创建一个字符串数组,其中包含: 1.书籍中第一本书的名称(如果有) 2.车内前两辆车的名称(如有)

我可以做到:

if (books.length > 0)
  var bookA = books[0].name;
或:

然后构建字符串数组,但我相信可能有更好的方法来实现这一点。

可以使用过滤器和映射

var账簿=[ {id:1,名称:'BookA'}, {id:2,名称:'Book B'} ]; var cars=[ {id:1,名称:'cara'}, {id:2,名称:'carb'}, {id:3,名称:'carc'} ]; var res=[books[0],cars[0],cars[1]] .filtere=>e//删除未定义的 .map{name:n}=>n
console.logres这是众多方法中的一种。这将允许您轻松创建一个数据结构arrayDefinition,它配置从哪个数组和哪个索引获取什么属性,例如,您可以从RESTful Web服务检索这些属性

var账簿=[ {id:1,名称:'BookA'}, {id:2,名称:'Book B'} ]; var cars=[ {id:1,名称:'cara'}, {id:2,名称:'carb'}, {id:3,名字:'carc'}, ]; 常量数组定义=[ { 资料来源:“书籍”, 索引:0, 道具:“名字” }, { 资料来源:“汽车”, 索引:0, 道具:“名字” }, { 资料来源:“汽车”, 索引:1, 道具:“名字” } ]; 让resultar=[] arrayDefinition.forEachfunctiondef{ 如果Array.isArraywindow[def.source]&窗口[def.source].length>=def.index{ resultar.pushwindow[def.source][def.index][def.prop] } }
如果您使用的是ES6,那么console.logresultar。您可以使用[…array1,…array2]合并它们。所以我对书中的第一个项目进行切片,并使用map获得一个只有字符串名的新数组,然后将其映射到结果数组。 对于cars数组,我将前两辆车切分,并执行相同的操作

var resultArray =[];

var books = [
  { id: 1, name: 'Book A' },
  { id: 2, name: 'Book B' }
];

var cars = [
  { id: 1, name: 'Car A' },
  { id: 2, name: 'Car B' },
  { id: 3, name: 'Car C' }
];

resultArray = [...resultArray, ...books.slice(0,1).map(v => v.name)]

resultArray = [...resultArray, ...cars.slice(0,2).map(v => v.name)]

console.log(resultArray)

在这个网站上,你应该尝试自己编写代码。之后,如果你有问题,你可以张贴你已经尝试了一个明确的解释什么是不工作,并提供一个解决方案。我建议你读一个好的问题和答案。另外,请务必阅读。@FrankerZ我刚刚添加了一个如何实现的示例,但我正在寻找一种更优雅的方法来实现这一点。
var resultArray =[];

var books = [
  { id: 1, name: 'Book A' },
  { id: 2, name: 'Book B' }
];

var cars = [
  { id: 1, name: 'Car A' },
  { id: 2, name: 'Car B' },
  { id: 3, name: 'Car C' }
];

resultArray = [...resultArray, ...books.slice(0,1).map(v => v.name)]

resultArray = [...resultArray, ...cars.slice(0,2).map(v => v.name)]

console.log(resultArray)