我有一個名爲'$ inputFieldsArray'的輸入字段數組,然後我將它們切成3組分成'newArray',然後我需要爲每個項目分配另一個數組原因的新數組值結束語我需要一個數組,其輸入字段值由3組成。最終目標是獲得一個包含9個輸入字段ex [[i1,i2,i3],[i4,i5,i6],[i7,i8, I9]。將數組值傳遞給另一個數組
由於某種原因,'stringArray'輸出沒有任何作用,前兩個數組輸出正確的結果。這可能是一些關於JS數組的錯誤..抱歉的js不是我的主要語言,我嘗試去學習它。謝謝。
這裏是我的功能:
$($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
});
SOLUTION:
有沒有辦法申報的JS動態長度二維數組。使用此方法通過@Stephan建議:
stringArray[k] = [newArray[k][0].value, newArray[k][1].value,
newArray[k[2].value];
或本辦法由@Lorenzo甘吉建議:
var matrix = [],
cols = 3;
//init the grid matrix
for (var i = 0; i < cols; i++) {
matrix[i] = [];
}
截圖是複製粘貼+非常有用:/ –
@Jonas W,告訴我,我應該提供什麼樣的信息。謝謝。 – Daniel
因此,你有九個輸入名稱'bodyHeader'? – adeneo