gpt4 book ai didi

Javascript:为什么数组变量赋值在此函数内外的行为不同?

转载 作者:行者123 更新时间:2023-11-30 10:02:55 25 4
gpt4 key购买 nike

对于我的生活,我就是想不通我在这里做错了什么。

我正在尝试同时使用 reduce 和 concat 数组方法来获取二维数组的所有值并将它们组合成一个值(基本上将它们压缩成一个数组然后将它们相加)。

我一直遇到的问题是,当我尝试创建一个 for/loop 来连接每个数组元素时,我传递给函数的参数没有被识别为数组,因此我调用 . concat() 失败了。我在函数的开头放置了一个 console.log() 以查看该元素是否被识别为二​​维数组中的第一个数组元素,并且它以“1”(?)出现。

我在函数之外尝试了另一个测试,它记录为实际的数组元素。我在这里做错了什么?代码如下:

var arrays = [[1, 2, 3], [4, 5], [6]];

var myArray = arrays[0]; // Test
console.log(myArray); // Test

var flatArray = arrays.reduce(function(arrays)
{
console.log(arrays[0]); // Test

for (var i = 0; i < arrays.length - 1; i++)
{
arrays[0].concat(arrays[i+1]);
}
return arrays;

});

console.log(flatArray);

这是我不断得到的输出:

Array [ 1, 2, 3 ]
1
TypeError: arrays[0].concat is not a function

在函数内部时,似乎数组正在被转换为数字类型...?

最佳答案

你这里的代码有错误:

var flatArray = arrays.reduce(function(param) {})

该参数将是您的数组向量的一个元素

检查这个https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

关于Javascript:为什么数组变量赋值在此函数内外的行为不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30671009/

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