【发布时间】:2022-01-24 00:09:15
【问题描述】:
const repeat= (nums) =>{ //* Done
let ans = []
for(let i = 0; i< nums.length; i++){
if(nums[i] === nums[i+1]){
if(ans[ans.length -1] !== nums[i]){
ans.push(nums[i])
}
}
}
return ans.length
}
console.log(repeat(['nsmg33de1','nsmg33de1','2211,','2211','1234','1234']))
在这个例子中,这个函数似乎不能正常工作 数组中有 3 个重复的字符串,但它会输出 2
【问题讨论】:
-
console.log() 是你的朋友。添加日志以查看发生了什么。或者添加一个断点并遍历代码。
console.log(nums[i], nums[i+1], nums[i] === nums[i+1]); if(nums[i] === nums[i+1]){console.log 行会告诉你为什么它不工作。在开发中学习的最佳技能是调试。 -
这并不是检查重复项的正确算法。您只是在数组中检查前面的项目。所以如果数组中的字符串都乱七八糟,它就行不通了。另外,我猜
nums[i+1]会在数组末尾抛出一个错误,因为你会超出索引。 -
2 是正确的输出,您只是不小心在第一个 2211 后面添加了一个逗号。但是就像@dj11223344 所说的那样,如果要对其进行加扰,它不会真正输出任何有用的东西。
-
有没有更好更简单的查找重复字符串的函数?
-
如果在数组中的任何地方重复,这里有很多答案stackoverflow.com/questions/840781/…
标签: javascript html css arrays repeat