[英]How to splice an array out of a nested array - javascript
我試圖從其父數組中拼接出一個嵌套數組。 考慮以下數組。 items.splice(0,1)
應該給我第一個嵌套數組([1,2]),但是它似乎給了我第一個嵌套數組, 仍然嵌套在數組內部:
var items = [[1,2],[3,4],[5,6]];
var item = items.splice(0,1); // should slice first array out of items array
console.log(item); //should log [1,2], instead logs [[1,2]]
但是,它似乎在另一個數組中返回了所需的數組(第一項)。 除非我執行item[0]
否則我無法獲得完整的數組。 我到底在想什么!
MDN說Array.prototype.splice
:
返回
包含已刪除元素的數組 。 如果僅刪除一個元素,則返回一個元素的數組。 如果沒有刪除任何元素,則返回一個空數組。
因此,它不會僅返回已刪除的元素,而是將其包裝在數組中。
splice()
更改數組的內容,並返回包含已刪除元素的數組。
在您的情況下,原始數組的元素也恰好是數組。 這可能會使您感到困惑。
.splice()
返回item
正確數組; 嘗試選擇返回數組的索引0
以返回[1,2]
; 要“拼合” item
,請嘗試利用Array.prototype.concat()
; 請參閱如何在jQuery中展平數組?
var items = [[1,2],[3,4],[5,6]]; var item = items.splice(0,1); // should slice first array out of items array // https://stackoverflow.com/a/7875193/ var arr = [].concat.apply([], item); console.log(item[0], arr);
您應該在項目中引用第一個數組,然后對其進行拼接。 嘗試使用下面的代碼段。
var items = [[1,2],[3,4],[5,6]]; var item = items[0].splice(0,2); console.log(item);
要替換二維數組,您應使用array [row] [col]例如
for(var row = 0; row < numbers.length; row++) {
for(var col = 0; col < numbers[row].length; col++) {
if (numbers[row][col] % 2 === 0) {
numbers[row][col] = "even";
} else {
numbers[row][col] = "odd";
}
}
}
console.log(numbers);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.