循环遍历数组并仅获取一次相同的值

Looping through array and get the same value only once

本文关键字:一次 数组 遍历 获取 循环      更新时间:2023-09-26

我有一个数组

var myArray = ['1','1','2','2','1','3'] // 6 item
循环

时有什么方法可以一次性返回 1 和 2 和 3 的值?

//example in pseudocode
var getNumber = [];
var count = 0;
var check = 0;
for(var i in myArray)
{
     if(getNumber[check] !== myArray[i])
     {    
          getNumber[count] = myArray[i];
          count++;
     }
     else
     {
     }
}

以及跟进我以前的代码的建议?

谢谢

您应该使用 Array.indexOf 和 Array.push 来检查和插入值。

var getNumber = [];
for(var i in myArray)
{
     if(getNumber.indexOf(myArray[i]) < 0)    //See if the number wasn't found already
     {    
          getNumber.push(myArray[i]);
     }
     else
     {
           //This number was found before. Do nothing!
     }
}

你可以做这样的事情:

function leaveDupes(arry){
  var newArry = [], keys={};
  for(var i in arry){
    if(!keys[arry[i]]){
      newArry.push(arry[i]);
      keys[arry[i]]=true;
    }
  }
  return newArry;
}
console.log(leaveDupes(['1','1','2','2','1','3'] ))

使用下划线.js,您可以执行以下操作:

newArry = _.uniq(['1','1','2','2','1','3']);
var obj = {};
for (var i = 0; i < myArray.length; i++) {
    if (!obj[myArray[i]]) {
        obj[myArray[i]] = true;
        console.log(myArray[i]); //these are the unique values
    }
}

这将起作用。

var myArray = ['1','1','2','2','1','3']
var getNumber = {};
var retArray = [];
myArray.forEach(function(val){
  if(!getNumber[val]){
    getNumber[val] = val;
    retArray.push(val);
  }
});
return retArray
您可以使用

forEachindexOf数组方法来查找唯一元素。

var myArray = ['1','1','2','2','1','3','4','4','5'];
   var uniqueArray =[]; //A new array which will hold unique values
   function _unique(myArray){
     myArray.forEach(function(item,index){
       if(uniqueArray.indexOf(item) ==-1){  //Check if new array contains item
        uniqueArray.push(item)
       }
     })
   }
 _unique(myArray);