'$ inputFieldsArray'という入力フィールドの配列を持っていて、それを3つずつ 'newArray'にグループ化すると、各アイテムの新しい配列値が必要になります。私は入力フィールド値が3でグループ化された配列が必要です。最終目標は、9つの入力フィールドex [[i1、i2、i3]、[i4、i5、i6]、[i7、i8、 i9]]。配列の値を別の配列に渡す
'stringArray'の出力が何もないため、最初の2つの配列は正しい結果を出力します。おそらく、私はJS配列に関して何らかの間違いをしています。ごめんなさい、私の主な言語ではありません。私はそれを学びます。ありがとう。ここで
は私の機能である:ここで
はクロームコンソールとscreenshootある$($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ガンジによって提案されたこのアプローチ:あなたは(あなたのブラウザは、おそらく例外を投げた)[]
としてのStringArrayが定義されているため
var matrix = [],
cols = 3;
//init the grid matrix
for (var i = 0; i < cols; i++) {
matrix[i] = [];
}
のスクリーンショットは、コピー+ペーストのために非常に有用である:/ –
@Jonasワット、私が提供すべきかの情報を教えてください。ありがとう。 – Daniel
「bodyHeader」という名前の9つの入力がありますか? – adeneo