javascript - 将数组值传递给另一个数组

标签 javascript jquery

我有一个名为“$inputFieldsArray”的输入字段数组,然后我将它们按 3 分组为“newArray”,然后我需要为每个项目分配新的数组值以分配给另一个数组,因为最后我需要一个带有以下内容的数组:输入字段值按 3 分组。最终目标是获取一个包含 9 个输入字段的数组,例如 [[i1,i2,i3],[i4,i5,i6],[i7,i8,i9]]。

由于某种原因,“stringArray”输出什么也没有,前两个数组打印正确的结果。这可能是我在 JS 数组方面犯的一些错误。抱歉 js 不是我的主要语言,我尝试学习它。谢谢。

这是 Chrome 控制台的屏幕截图: enter image description here

这是我的功能:

$($submitButton).click(function () {
// Get number of input fields
let $total = $("input[name^='bodyHeader']").length;
// Get input fields as objects
let $inputFieldsArray = $("input[name^='bodyHeader']");

let newArray = [];
let stringArray = [];
let j = 0;
// Group input fields by 3 
for (let i = 0; i < $total - 1; i += 3) {
    newArray[j] = $inputFieldsArray.slice(i, i + 3);
    j++;
}
// Extract string values from newArray and pass them into stringArray
for (let k = 0; k < newArray.length - 1; k++) {

    stringArray[k][0] = newArray[k][0].value;
    stringArray[k][1] = newArray[k][1].value;
    stringArray[k][2] = newArray[k][2].value;
}
// Print to test results
console.log($inputFieldsArray);
console.log(newArray);
console.log("String Array: " + stringArray); 
... // Function logic is not complete
});

解决方案:

js中没有办法声明动态长度二维数组。使用@Stephan 建议的这种方法:

stringArray[k] = [newArray[k][0].value, newArray[k][1].value, 
newArray[k[2].value];

或者@Lorenzo Gangi建议的这种方法:

var matrix = [],
cols = 3;

//init the grid matrix
for ( var i = 0; i < cols; i++ ) {
    matrix[i] = []; 
}

最佳答案

stringArray[k] 未定义,因为您将 stringArray 定义为 [] (您的浏览器可能引发异常)。另外 newArray[k] 从索引 0 开始。

您可以改为编写 stringArray[k] = [newArray[k][0].value, newArray[k][1].value, newArray[k][2].value] .

关于javascript - 将数组值传递给另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45119594/

相关文章:

javascript - 如何检查正确答案 JavaScript(4 个按钮)

javascript - 使用 jQuery 进行内联编辑

javascript - 需要有关 jQuery 插件的帮助 - TextExt 输入

javascript - 是否有事件在 DOM 加载之后但在任何外部资源(如图像、样式、iframe 等)之前触发?

javascript - 如何对具有相同类的不同 div 使用相同的 JQuery 效果

javascript - 如何使用 Javascript 从 GridView 单元格获取值

javascript - 受键盘大小影响的列表

javascript - React Router v6 - 检查子元素是否处于事件状态/<Outlet/>会返回组件吗?

jquery - 在 jQuery Mobile 中设置内容的最大宽度?

javascript - AngularJS 应用程序文件结构