Javascript 如何获取对象数组而不是数组数组
我正在尝试做一些映射,以得到一个对象数组 大概是这样的: 但是我从下面的方法得到的是一个数组数组Javascript 如何获取对象数组而不是数组数组,javascript,arrays,rxjs,Javascript,Arrays,Rxjs,我正在尝试做一些映射,以得到一个对象数组 大概是这样的: 但是我从下面的方法得到的是一个数组数组 我应该如何重写它以获得我想要的结果(对象数组)?您可以使用一个简单的for-each样式循环将所有内容推送到一个新数组中 const input = [[1], [1], [1]]; const output = []; input.forEach(arr => arr.forEach(elem => output.push(elem))); JavaScript concat(
我应该如何重写它以获得我想要的结果(对象数组)?您可以使用一个简单的for-each样式循环将所有内容推送到一个新数组中
const input = [[1], [1], [1]];
const output = [];
input.forEach(arr => arr.forEach(elem => output.push(elem)));
JavaScript concat()方法用于合并两个或多个数组。这种方法 不更改现有数组,而是返回一个新数组
const input = [[1], [1], [1]];
const output = [];
input.forEach(arr => arr.forEach(elem => output.push(elem)));
然而,Lodash和下划线对于这种行为来说也是非常好和干净的:
Lodash
将阵列展平一级深度
我在一个角度项目中使用了lodash,使用起来非常简单
import * as _ from 'lodash';
let x = _.flatten(array.items);
npm包:
下划线(JS)
展平嵌套数组(嵌套可以达到任何深度)。如果你通过
浅,阵列将仅展平一个级别
npm软件包:不是rxjs方面的专家,但也许可以查看flatMap并尝试用flatMap替换其中一个map函数好的,我也会尝试@奥列克桑多夫
_.flatten([1, [2, [3, [4]], 5]]);
// => [1, 2, [3, [4]], 5]
import * as _ from 'lodash';
let x = _.flatten(array.items);
_.flatten([1, [2], [3, [[4]]]]);
// => [1, 2, 3, 4];
_.flatten([1, [2], [3, [[4]]]], true);
// => [1, 2, 3, [[4]]];