从一个范围内的数组中获取唯一值?

Oks*_*ukh 3 javascript arrays unique indexof

我有一个数组,我需要返回范围内的值(从a到b)的新数组但是!我想返回没有重复.我在下面编写了脚本,但它无法正常工作.

let arr = [3, 9, 10, 23, 100, 100, 23, 4, 10, 13, 13];
let newArr = [];
let funcFilter = function(arr, a, b) {
  for(let i = 0; i< arr.length; i++) {
  if(arr[i] >= a && arr[i] <= b ) {
  if(arr.indexOf(arr[i]) !== -1)
   newArr.push(arr[i]);
}
}
return newArr;
}
console.log(funcFilter(arr, 3, 20))
Run Code Online (Sandbox Code Playgroud)

luc*_*umt 5

Ypu需要检查值newArr,所以arr.indexOf(arr[i]) !== -1需要更改为newArr.indexOf(arr[i]) == -1

let arr = [3, 9, 10, 23, 100, 100, 23, 4, 10, 13, 13];
let newArr = [];
let funcFilter = function(arr, a, b) {
  for(let i = 0; i< arr.length; i++) {
    if(arr[i] >= a && arr[i] <= b ) {
       if(newArr.indexOf(arr[i]) == -1)
         newArr.push(arr[i]);
       }
   }
return newArr;
}
console.log(funcFilter(arr, 3, 20))
Run Code Online (Sandbox Code Playgroud)