二次元配列を通常配列に変換

複数の配列の組み合わせを扱う場合、配列につなぎ合わせることがよくあります. 今日は配列の変換について話します.

2 次元 (またはそれ以上) の可変 1 次元配列

3番目の適用方法をよく使用します

1.es5のreduceとconcatを組み合わせて使う

var list = [
  [111,222,3333,444],
  [555,666,777],
  [888],
  [999,1213]
]
var lists = list.reduce((a,b) => a.concat(b))
console.log(lists)

ここに画像の説明を挿入
2.ES6のフラット処理を利用する

var list = [
  [111,222,3333,444],
  [555,666,777],
  [888],
  [999,1213]
]
var lists = list.flat()
console.log(lists)

ここに画像の説明を挿入
3.適用で実現

var list = [
  [111,222,3333,444],
  [555,666,777],
  [888],
  [999,1213]
]
var lists = [].concat.apply([],list)
console.log(lists)

ここに画像の説明を挿入
4.通話で実現

var list = [
  [111,222,3333,444],
  [555,666,777],
  [888],
  [999,1213]
]
var lists = [].concat.call([],...list)
console.log(lists)

ここに画像の説明を挿入
5. 再帰を使用して多次元配列を 1 次元配列に変換する

var list = [
	[111,222,3333,444],
	[ 555, 666, 777, [123] ],
	[ 888 ], 
	[ 999, 1212 ]
]
function flatten(arr) {
	return [].concat(...arr.map(x=>Array.isArray(x) ? flatten(x) : x))
}
var lists = flatten(list)
console.log(lists)

ここに画像の説明を挿入
6. 単純な多次元配列の変換

var list = [
  [111,222,3333,444],
  [555,666,777,[123]],
  [888],
  [999,1212]
]
var lists = (list + '').split(',')
console.log(lists.map(Number))

ここに画像の説明を挿入
// let oneArr = values?.map((el) => { // return el.getData.map((item) => { // return { // reportId: item.id, // reportQty: item.editReportQty // }; // }); // }); // var params = [].concat.apply([], oneArr); // console.log(params);








おすすめ

転載: blog.csdn.net/lzfengquan/article/details/127731577