使用javascript检查Array中的各个元素

时间:2016-01-14 06:22:32

标签: javascript arrays

我有一个类似

的数组
"Rich Text Editor, dynamicmodel-cms_content"

我想测试每个数组索引内容的重复次数。 例如:我想取myArray={["Michael", "Michael", "Angelo"] , ["Shaw"],["Help me help me"]} myArray[0],并检查它是否包含重复的单词。在这种情况下,结果是肯定的。

我没有得到如何检查myArray [0]中的个人。我怎么能用javascript做。

7 个答案:

答案 0 :(得分:0)

首先,确保您的阵列已正确定义:

var myArray = [
  ["Michael", "Michael", "Angelo"],
  ["Shaw"],
  ["Help me help me"]
];

使用将数​​组元素传递到临时数组的函数,如果没有重复,则返回false,如果没有,则返回true

function hasDuplicate(arr) {
  for (var dupe = [], i = 0, l = arr.length; i < l; i++) {
    var val = arr[i];
    if (dupe.indexOf(val) > -1) return true;
    if (val !== 0) dupe.push(val);
  }
  return false;
}

遍历数组并检查每个嵌套数组:

myArray.forEach(function(arr) {
  console.log(hasDuplicate(arr)); // true, false, false
});

DEMO

答案 1 :(得分:0)

使用JQuery这样做。您可以将数组传递给此函数并检查重复项。

function(anArray) {

   var uniqueNames = [];

   $.each(anArray, function(i, el){
      if($.inArray(el, uniqueNames) === -1) 
         uniqueNames.push(el);
      else
         return false;
  });

  return true; 

}

答案 2 :(得分:0)

下面的函数采用数组并对其进行重复数据删除。您可以映射原始数组并逐个重复数据删除。

function hasDupe(arr) {
  var index = {};
  for (var i in arr) {
    if (!index[arr[i]]) {
      index[arr[i]] = true;
      continue;
    }
    return true;
  }
  return false;
}

答案 3 :(得分:0)

您可以检查indexOf()是否等于lastIndexOf()。 如果是,则该基础元素不止一次出现在数组中。

function isDup(list){
    // Return true if at least one element `n` appears more than once in `list`
    return list.some(function(n,i){
        return i != list.lastIndexOf(n) // i potentially equals list.indexOf(n)
    });
}

var list = ["Michael", "Michael", "Angelo"];
isDup(list); // true

答案 4 :(得分:0)

这是一种方法:为每个子阵列构建一个映射,然后评估&gt;的单词频率。 0进行重复确定。

var ar = [["Michael", "Michael", "Angelo"] , ["Shaw","Shaw"],["Help me help me"]];
var arrayIndex = 0;
ar.forEach(function(a) {
    var n = {};
    a.forEach(function(l) {
        n[l] = n[l] != undefined ? n[l] + 1 : 0;
    });
    Object.keys(n).forEach(function(k) {
        if (n[k] > 0) console.log("Array index", arrayIndex, "has repeated words.")
    })
    arrayIndex++;
})

答案 5 :(得分:0)

var myArray = [
  ["Michael", "Michael", "Angelo"],
  ["Shaw"],
  ["Help me help me"],
];

function checkDuplicates(arr){
    arr.forEach(function(row){
            console.log('>>'+row + 'contains duplicate :');
            for(var i = 0, l = row.length, el = []; i<l; i++){
                if(el.indexOf(row[i])<0){
                    el.push(row[i]);
                }else{
                    console.log('\tyes')
                    return;
                }
            }
            console.log('\tno');
        }
    );



}

checkDuplicates(myArray);

答案 6 :(得分:-1)

你可以遍历数组并检查每个元素

Set(array[i])).size == array[i].length

如果每个元素中都有重复项,那么在该迭代中将返回false,然后你应该打破循环。