gpt4 book ai didi

Javascript |奇数数组行为 - 解析组合数组与预定义数组

转载 作者:行者123 更新时间:2023-11-27 23:25:47 26 4
gpt4 key购买 nike

我在数组方面遇到了一些奇怪的行为。我不明白发生了什么事。如果我创建两个数组...

var a = [0,0,1,0];
var b = [0,2, 1,2];

并将它们组合起来...

combineChars();
function combineChars(){
combo.push(a);
combo.push(b);
}

我最终得到了一个数组...

combo = [0,0,1,0,0,2,1,2];

但是,如果我尝试将数组拆分为两个单独的数组,它不会按预期拆分。

function splitArray(a){
console.log("splitArray("+a+")"); //splitArray(0,0,1,0,0,2,1,2)
for (i=0;i<a.length;i++){
if ((i+2)%2==0) {
rSplit.push(a[i]);
} else {
cSplit.push(a[i]);
}
}
console.log("rSplit = " + rSplit); //rSplit = 0,0,1,0
console.log("cSplit = " + cSplit); //cSplit = 0,2,1,2
}

预期...

console.log("rSplit = " + rSplit); //rSplit = 0,0,1,0,0,1,0,1
console.log("cSplit = " + cSplit); //cSplit = 0,2,1,2,0,0,2,2

fiddle :https://jsfiddle.net/taylorRichie/yrzrqm38/4/

正如您从 fiddle 中看到的,如果我创建数组“co”而不是组合两个数组,它的行为将按预期进行。

???

任何帮助将不胜感激。

里奇

最佳答案

给定一个空的 combo 数组以及您的 ab 数组,

combo.push(a);
combo.push(b);

不会像您声称的那样将ab元素推送到combo,而是,推送数组本身,使 combo 成为一个包含 2 个元素的数组,这两个元素都是原始 ab 数组本身。

如果您使用concat而不是push ,您的 combo 数组将按照您最初的预期构建。

即将您的 combineChars 函数更改为以下内容:

function combineChars(){
combo = combo.concat(a);
combo = combo.concat(b);
}

请注意,您需要重新分配combo,因为concat不会改变原始数组,而是返回一个新数组。

关于Javascript |奇数数组行为 - 解析组合数组与预定义数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34979452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com