const markedLine = function(array) { for (let i = 0; i < array.length; i++) { if (array[i] === 9) { // 每次只判断一项!!很浪费判断属性 if (i - 1 >= 0) { if (i + 1 < array.length) { array.splice(i - 1, 1, array[i - 1] + 1) array.splice(i + 1, 1, array[i + 1] + 1) } else { array.splice(i - 1, 1, array[i - 1] + 1) } } else { array.splice(i + 1, 1, array[i + 1] + 1) } } } log(array) return array }
const markedLine = function(array) {
let line = array.slice(0)
for (let i = 0; i < line.length; i++) {
let e = line[i]
// 如果 e 是 9, 左边 + 1
if (e === 9 && i > 0) { //和我一开始的思路一样 不过后来我失败了!这个代码看着舒服!左边是左边!右边是右边
if (line[i - 1] !== 9) {
line[i - 1] += 1
}
}
// 如果 e 是 9, 右边 + 1
if (e === 9 && i < line.length - 1) {
if (line[i + 1] !== 9) {
line[i + 1] += 1
}
}
}
return line
}
原文:https://www.cnblogs.com/-constructor/p/11715150.html