ran*_*its 5 javascript arrays underscore.js
这是一段简单的 JavaScript,我想将orders.foo和的内容添加orders2.foo到一维ordersArr.
let _ = require('underscore');
let ordersArr = [];
let orders = {
foo: [
{x: 1, b: 2},
{y: 1, c: 3},
{a: 2, d: 4}
]
}
ordersArr = _.map(orders.foo, order => order)
orders2 = {
foo: [
{x: 2, b: 3},
{y: 5, c: 4},
{a: 3, d: 6}
]
}
let tOrders = _.map(orders2.foo, order => order);
ordersArr.push(tOrders)
console.log(ordersArr);
Run Code Online (Sandbox Code Playgroud)
这段代码的问题在于,push在这种情况下创建了一个多维数组:
输出
[
{ x: 1, b: 2 },
{ y: 1, c: 3 },
{ a: 2, d: 4 },
[ { x: 2, b: 3 }, { y: 5, c: 4 }, { a: 3, d: 6 } ]
]
Run Code Online (Sandbox Code Playgroud)
如何迭代orders.foo和的内容orders2.foo并将其结果作为一个一维数组?
您可以将spread两个数组的内容放入新数组中
const arr1 = [1,2,3];
const arr2 = [4,5,6];
const arr3 = [...arr1, ...arr2];
console.log(arr3);
// prints [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
传播arr2到arr1也有效。
arr1.push(...arr2);
console.log(arr1);
// prints [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
如此改变
ordersArr.push(tOrders)
Run Code Online (Sandbox Code Playgroud)
到
ordersArr.push(...tOrders);
Run Code Online (Sandbox Code Playgroud)
应该管用。
完整答案:
let ordersArr = [];
let orders = {
foo: [
{x: 1, b: 2},
{y: 1, c: 3},
{a: 2, d: 4}
]
}
orders2 = {
foo: [
{x: 2, b: 3},
{y: 5, c: 4},
{a: 3, d: 6}
]
}
ordersArr.push(...orders.foo, ...orders2.foo);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2640 次 |
| 最近记录: |