簡體   English   中英

將單元素數組的Javascript數組轉換為一維數組

[英]Convert Javascript array of single-element arrays into 1d array

我為此感到難過。 我有一個看起來像這樣的數組:

[[1],[2],[3],[4],[5]]

(單成員數組的數組)

該數組是由Google Apps腳本提供給我的,因此我無法更改創建它的代碼。

我正在嘗試獲取某個值的索引。 我不能使用indexOf,因為每個值都是單個成員的數組(我試過array.indexOf([3]),但這不起作用)。 有沒有一種簡單的方法可以將其轉換為一維數組,如下所示:

[1,2,3,4,5]

我總是可以遍歷原始數組的成員,然后將其復制到新數組,但是似乎應該有更好的方法。

只需使用map()

var newArr = data.map(function(subArr){
  return subArr[0];
})

您可以使用reduce()

 var a = [[1],[2],[3],[4],[5]]; var b = a.reduce( function( prev, item ){ return prev.concat( item ); }, [] ); console.log(b); 

concat

 var a = [[1],[2],[3],[4],[5]]; var b = Array.prototype.concat.apply([], a ); console.log(b); 

map

 var a = [[1],[2],[3],[4],[5]]; var b = a.map( function(item){ return item[0]; } ); console.log(b); 

找到了一個答案,這似乎很簡單,所以我想分享一下:

  var a = [[1], [2], [3], [4], [5], [6], [7]]; var b = a.map(function(value, index){return value[0];}); 

您可以嘗試使用map,它類似於循環,但更加簡潔:

arr.map(function(val){return val[0];});

或使用過濾器直接過濾所需的值:

var num = 1;
arr.filter(function(val){return val[0] == num;});

這是一個可以做的班輪:

array.toString().split(',').map(Number);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM