Javascript 一种比较数组中是否有重复数字的函数
我试图创建一个函数来比较数组中的重复数字,如果存在重复数字,我将返回数组中的这些数字 我就是这么做的,但我还在挣扎Javascript 一种比较数组中是否有重复数字的函数,javascript,arrays,Javascript,Arrays,我试图创建一个函数来比较数组中的重复数字,如果存在重复数字,我将返回数组中的这些数字 我就是这么做的,但我还在挣扎 function solution(array) { var a = []; for(var i = 0; i < array.length; i++) { if (array[i] === 1) { a.push(array[i]); } } return a; } alert(sol
function solution(array) {
var a = [];
for(var i = 0; i < array.length; i++) {
if (array[i] === 1) {
a.push(array[i]);
}
}
return a;
}
alert(solution([1, 2, 3, 4, 5, 1]));
solution([2, 1, 1, 2, 2]); //Should return [1, 2, 2]. Because 2, 1 are original documents and 1, 2, 2 - are copies
函数解决方案(数组){
var a=[];
对于(var i=0;i
您有两个数组:一个包含原始数字,另一个包含结果,用于收集重复数字
您正在原始阵列上循环。这是一个良好的开端
array[i]是原始数组的当前编号
你怎么知道它以前是否已经发生过,因此是重复的?这是算法的下一步,你必须弄清楚
您可能需要另一个循环或另一个数组,可能还需要一个if。您有两个数组:一个带有原始数字,另一个带有结果,用于收集重复数字 您正在原始阵列上循环。这是一个良好的开端 array[i]是原始数组的当前编号 你怎么知道它以前是否已经发生过,因此是重复的?这是算法的下一步,你必须弄清楚
您可能需要另一个循环或另一个数组,可能还需要某个if。
indexOf
返回元素第一次出现的索引filter
将函数应用于数组的每个元素一次,并返回一个包含所有元素的新数组,其中函数返回true
function solution(array) {
return array.filter(function(value, index) {
return array.indexOf(value) < index;
});
}
函数解决方案(数组){
返回数组.filter(函数(值、索引){
返回数组.indexOf(value)
indexOf
返回元素第一次出现的索引filter
将函数应用于数组的每个元素一次,并返回一个包含所有元素的新数组,其中函数返回true
function solution(array) {
return array.filter(function(value, index) {
return array.indexOf(value) < index;
});
}
函数解决方案(数组){
返回数组.filter(函数(值、索引){
返回数组.indexOf(value)
openorclose答案的更快版本:
function solution(array) {
return array.filter(function(value, index) {
return array.indexOf(value, index + 1) > -1;
});
}
openorclose答案的更快版本:
function solution(array) {
return array.filter(function(value, index) {
return array.indexOf(value, index + 1) > -1;
});
}
“应返回[1,2,2]”-为什么2出现两次?显示的代码将遍历数组并查找所有===1的值。那不是你想做的,是吗?为什么要和数字1比较?因为我不知道如何将当前循环与过去的数字进行比较,所以我将i占位符放在测试中@bjelli“应该返回[1,2,2]”-既然2是数组中具有重复项的第一个数字,为什么不
[2,1,2]
或[2,2,1]
?您是否尝试过嵌套的for循环?“应返回[1,2,2]”-为什么2出现两次?您显示的代码将遍历数组并查找所有===1的值。那不是你想做的,是吗?为什么要和数字1比较?因为我不知道如何将当前循环与过去的数字进行比较,所以我将i占位符放在测试中@bjelli“应该返回[1,2,2]”-既然2是数组中具有重复项的第一个数字,为什么不[2,1,2]
或[2,2,1]
?您是否尝试过嵌套for循环?