大家好,我正在尝试创建以下函数:如果数组中的下一个元素大于前一个元素,则在计数器中添加 1。然而我的问题是当我有相同的元素时。我想添加一些内容来检查所有元素是否相同,添加 1 来计数器每个相同的元素。所以在关于 [4,4,4,4,4] 的例子中应该输出 5,因为有 5 个元素是相同的
function tower(arr) {
//lave en counter for antallet af towers
counter = 0
counteridentical = 0
//loop igennem listen
for (let i = 0; i < arr.length; i++) {
//lave if statement og tjekke hvis næste er større, skal der countes +1
if (arr[i] < arr[(i + 1) % arr.length]) {
counter++
}
}
return counter
}
console.log(tower([4, 3, 3, 2, 1, 2, 2, 1, 1, 3])) //expected output 3
console.log(tower([
[4, 4, 4, 4, 4]
])) //expected output 5
你的第二个数组是嵌套的
这是我的建议
function tower(arr) {
if (arr.every(val => val === arr[0])) return arr.length
return arr.filter((val,i) => i === 0 || i > 0 && val > arr[i-1]).length
}
console.log(tower([4, 3, 3, 2, 1, 2, 2, 1, 1, 3])) //expected output 3
console.log(tower([ 4, 4, 4, 4, 4 ])) //expected output 5
function tower(arr) {
counter = 0
counteridentical = 0
for (let i = 1; i <= arr.length; i++) {
if (arr[i] >= arr[(i - 1)]) {
counter++
}
}
return counter
}
逻辑如下: