Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取对象数组而不是数组数组_Javascript_Arrays_Rxjs - Fatal编程技术网

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]]];