Các vòng lặp lồng nhau có vị trí của chúng trong quá trình phát triển, nhưng nếu bạn không cẩn thận, chúng có thể dẫn đến suy giảm hiệu suất nghiêm trọng do vòng lặp bên trong sẽ chạy một số lần nhất định, nhân với số lần vòng lặp bên ngoài chạy.
Thường có thể tránh phải chạy một vòng lặp lồng nhau, thay vào đó là chạy hai vòng lặp riêng biệt [có nghĩa là mỗi vòng lặp sẽ chỉ chạy một số lần nhất định]
Hãy xem xét đoạn mã sau
var innerGR; var results = []; var outerGR = new GlideRecord['table_name']; outerGR.query[]; while [outerGR.next[]] { innerGR = new GlideRecord['other_table_name']; innerGR.addQuery['field', outerGR.getValue['something_to_compare']]; innerGR.query[]; while [innerGR.next[]] ...
fn
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
4 lặp qua một bảng function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
5 mô phỏng, tìm tất cả các chỉ mục của một giá trị nhất định, sau đó lặp qua tất cả các kết hợp chiến thắng có thể có, tìm bất kỳ chỉ mục nào có giá trị thực bằng với chỉ mục từ vòng lặp đầu tiên, [tôi biết. /] sau đó thay thế giá trị bằng giá trị được truyền vào hàm [x hoặc o]Sau đó, một hàm tiếp theo được chạy để kiểm tra xem mọi giá trị bên trong bất kỳ mảng lồng nhau nào bên trong
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
6 đều bằng nhau. Nếu đúng, một người chiến thắng được tìm thấyconst possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
Nó chỉ có hai hàm nên code không nặng lắm nhưng tôi cảm thấy như
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
4 sẽ không đạt điểm cao trên bảng xếp hạng hiệu suất do vòng lặp lồng nhau. Mọi đề xuất về một số cải tiến sẽ rất tuyệt Nếu bạn gặp khó khăn trong việc hiểu thử thách Nesting For Loops của freeCodeCamp, đừng lo lắng. Chúng tôi đã hỗ trợ bạn
Trong bài toán này, bạn phải hoàn thành hàm
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
7 và lấy một mảng nhiều chiều làm đối số. Hãy nhớ rằng mảng nhiều chiều, đôi khi được gọi là mảng 2D, chỉ là một mảng của các mảng, ví dụ: function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
8Trong trình chỉnh sửa bên phải,
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
7 được định nghĩa như saufunction multiplyAll[arr] {
var product = 1;
// Only change code below this line
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
Bạn cần hoàn thành hàm để nó nhân biến
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
0 với mỗi số trong các mảng con của tham số function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
1, là một mảng nhiều chiềuCó rất nhiều cách khác nhau để giải quyết vấn đề này, nhưng chúng tôi sẽ tập trung vào phương pháp đơn giản nhất bằng cách sử dụng vòng lặp
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2Thiết lập vòng lặp function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 của bạn
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
Vì
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
1 là mảng nhiều chiều nên bạn sẽ cần hai vòng lặp function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2. một để lặp qua từng mảng của mảng con và một để lặp qua các phần tử trong mỗi mảng conLặp qua các mảng bên trong
Để làm điều này, hãy thiết lập vòng lặp
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 giống như bạn đã thực hiện trong các thử thách trướcfunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
Lưu ý rằng chúng tôi đang sử dụng
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
7 thay vì function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
8 cho vòng lặp và để khai báo function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
0. Trong thử thách này, bạn sẽ không nhận thấy sự khác biệt giữa hai loại, nhưng nhìn chung, nên sử dụng const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
70 và function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
7 của ES6 bất cứ khi nào bạn có thể. Bạn có thể đọc thêm về lý do tại sao trong bài viết nàyBây giờ hãy ghi từng mảng con vào bảng điều khiển
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
Bởi vì bạn đang gọi
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
7 với const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
73 ở dưới cùng, bạn sẽ thấy như sauconst possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
7Lặp qua các phần tử trong mỗi mảng con
Bây giờ bạn cần lặp qua từng số trong các mảng phụ mà bạn vừa đăng nhập vào bảng điều khiển
Xóa
const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
74 và tạo một vòng lặp function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 khác bên trong vòng lặp bạn vừa viếtfunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
5Hãy nhớ rằng, đối với vòng lặp bên trong, chúng ta cần kiểm tra
const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
76 của const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
77 vì const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
77 là một trong những mảng con mà chúng ta đã xem xét trước đóBây giờ hãy đăng nhập
const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
79 vào bảng điều khiển để xem từng phần tử riêng lẻfunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
0function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
1Cuối cùng, nhân
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
0 với mọi phần tử trong mỗi mảng confunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
3Nếu bạn đăng nhập
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
0 vào bảng điều khiển, bạn sẽ thấy câu trả lời đúng cho từng trường hợp thử nghiệmfunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
5function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
6Xem kỹ hơn
Nếu bạn vẫn không chắc tại sao đoạn mã trên hoạt động, đừng lo lắng – bạn không đơn độc đâu. Làm việc với các vòng lặp lồng nhau rất phức tạp và ngay cả những nhà phát triển có kinh nghiệm cũng có thể bị nhầm lẫn
Trong những trường hợp như thế này, sẽ rất hữu ích nếu bạn ghi lại nội dung nào đó chi tiết hơn vào bảng điều khiển. Quay lại mã của bạn và đăng nhập
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
52 vào bảng điều khiển ngay trước vòng lặp function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 bên trongfunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
0Trong vòng lặp
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 bên ngoài, mỗi lần lặp đi qua các mảng con trong function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
1. Bạn sẽ thấy điều này trong bảng điều khiểnfunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
1Lưu ý rằng chúng tôi đang sử dụng chữ mẫu ở trên.
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
52 giống như function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
57, chỉ dễ viết hơn nhiềuBây giờ trong vòng lặp
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 bên trong, đăng nhập function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
59 vào bảng điều khiểnfunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2Vòng lặp
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 bên trong đi qua từng phần tử trong mỗi mảng con [const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
77], vì vậy bạn sẽ thấy điều này trong bảng điều khiểnfunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
3Lần lặp đầu tiên của
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
02 lấy mảng con đầu tiên, function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
03. Sau đó, lần lặp đầu tiên của function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
04 đi qua từng phần tử trong mảng con đófunction multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
4Ví dụ này khá đơn giản, nhưng
const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
79 vẫn có thể khó hiểu nếu không ghi nhiều thứ vào bảng điều khiểnMột cải tiến nhanh chóng mà chúng ta có thể thực hiện là khai báo một biến
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
06 trong vòng lặp function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 bên ngoài và đặt nó bằng const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
77function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
5Sau đó, chỉ cần thực hiện một vài điều chỉnh mã để sử dụng biến
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
06 mới thay vì const possibleWinCombos = [
[0, 1, 2], //================ //
[3, 4, 5], //== Horizontal == //
[6, 7, 8], //=================//
[0, 3, 6], //================ //
[1, 4, 7], //== Vertical == //
[2, 5, 8], //=================//
[0, 4, 8], //=================//
[2, 4, 6], //== Diagonal == //
]
const ticTacToe = [
'x', 'o', null,
null, 'x', null,
'o', null, 'x',
]
const game = [value] => {
ticTacToe.forEach[[cell, idxOfCell] => {
if[cell === value]{
for [winCombo of possibleWinCombos]{
let idxToReplace = winCombo.indexOf[idxOfCell]
winCombo.splice[idxToReplace, 1, value]
}
}
}]
checkForWinner[value] ?
console.log[`${value}'s win`] : console.log['game still going']
}
const checkForWinner = [value] => {
return possibleWinCombos.some[[winCombo] => {
return winCombo.every[[winComboValue] => winComboValue === value];
}]
}
game['x'] // x's win
game['o'] // game still going
77function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
6Đó sẽ là mọi thứ bạn cần biết về mảng nhiều chiều và vòng lặp
function multiplyAll[arr] {
let product = 1;
// Only change code below this line
for [let i = 0; i < arr.length; i++] {
console.log[arr[i]];
}
// Only change code above this line
return product;
}
multiplyAll[[[1,2],[3,4],[5,6,7]]];
2 lồng nhau. Bây giờ hãy ra khỏi đó và lặp lại với những gì tốt nhất của chúngQUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Nếu bài viết này hữu ích, hãy tweet nó
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu