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)