如何解决如何将计数器添加到相同元素的列表中
大家好,我正在尝试创建以下函数:如果数组中的下一个元素大于前一个元素,则将 1 添加到计数器。但是我的问题是当我有相同的元素时。我想添加一些检查所有元素是否相同的内容,为每个相同的元素加 1。所以在关于 [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,2,1,3])) //expected output 3
console.log(tower([
[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,2,1,3])) //expected output 3
console.log(tower([ 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
}
逻辑如下:
- 从第二个项目迭代到最后一个项目。即,for(let i = 1; i
- 在每一项上,检查它是否大于或等于前一个元素
- 如果第 2 步返回 true,则增加计数器
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。