[`array.some`方法](https://link.segmentfault.com/?enc=wpWUmd1jdXyZ%2FSRZSxO0Ng%3D%3D.XhrinNv7NQnBgVDbm4CEhWuILZOdoP1ytCnOxWXVM%2FkHN1glOyg%2FCPlaywpO3awY5Hb9p1pCUJkWxoK%2BauSaI2R64G6cjwdjX15wDRiyJxvretQTbHjVX%2FJV8VGgpQLG)只要数组内容有一个返回为true,它就会返回true,你这块的判断有问题。 如果是我的话,我会这样写: const arr = [ "11", "22","11","22","11","22","66"] function norepeat(arr) { const result = []; arr.forEach(i=>{ const curResItem = result.find(r=>r.value===i); if (curResItem) { curResItem.isRepeat = true; } else { result.push({ value: i, isRepeat: false, }); } }) return result; } const res = norepeat(arr);