![](/img/trans.png)
[英]How do I extract an element from an array in javascript and then make it an entirely new, single-element array?new
[英]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.