[英]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.