<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js练习</title>
</head>
<body>
</body>
<script>
var isValidSudoku = function(board) {
//检查每一行
// board.forEach(item=>{
// let row=[];
// item.forEach(r=>{
// if(r!='.') row.push(r);
// })
// let set=new Set(row);//去重
// if (set.size!=row.length) return false;
// })//forEach没办法使用 break 语句跳出循环,或者使用return从函数体内返回。
for (let i = 0; i < board.length; i++) {
let row=[];
for (let j = 0; j < board[i].length; j++) {
if(board[i][j]!='.') row.push(board[i][j]);
}
let set=new Set(row);//去重
if (set.size!=row.length) return false;
}
//检查每一列
for (let i = 0; i < 9; i++) {
let col = []
board.forEach( c => {
if (c[i] != '.') col.push(c[i])
})
let set = new Set(col)
if (set.size != col.length) return false;
}
//检查每个小方块
for(let x=0;x<9;x+=3){
for (let y = 0; y < 9; y+=3) {//控制方块
let box=[];
for(let a=x;a<3+x;a++){
for(let b=y;b<3+y;b++){
if(board[a][b]!='.') box.push(board[a][b]);
}
}
let set=new Set(box);
if (set.size!=box.length) return false;
}
}
return true ;
};
console.log(isValidSudoku([["7",".",".",".","4",".",".",".","."],[".",".",".","8","6","5",".",".","."],[".","1",".","2",".",".",".",".","."],[".",".",".",".",".","9",".",".","."],[".",".",".",".","5",".","5",".","."],[".",".",".",".",".",".",".",".","."],[".",".",".",".",".",".","2",".","."],[".",".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".",".","."]])
)
</script>
</html>
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
语法
array.forEach(function(currentValue, index, arr), thisValue)
计算数组所有元素相加的总和:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>一个参数</title>
</head>
<body>
<p>点击按钮计算数组所有元素相加的总和。</p>
<button onclick="numbers.forEach(myFunction)">点我</button>
<p>数组元素总和:<span id="demo"></span></p>
<script>
var sum = 0;
var numbers = [65, 44, 12, 4];
function myFunction(item) {
sum += item;
demo.innerHTML = sum;
}
</script>
</body>
</html>
将数组中的所有值乘以特定数字:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>三个参数</title>
</head>
<body>
<p>点击按钮将数组中的所有值乘以特定数字。</p>
<p>乘以: <input type="number" id="multiplyWith" value="10"></p>
<button onclick="numbers.forEach(myFunction)">点我</button>
<p>计算后的值: <span id="demo"></span></p>
<script>
var numbers = [65, 44, 12, 4];
function myFunction(item,index,arr) {
arr[index] = item * document.getElementById("multiplyWith").value;
demo.innerHTML = numbers;
}
</script>
</body>
</html>