我有一个类似
的数组"Rich Text Editor, dynamicmodel-cms_content"
我想测试每个数组索引内容的重复次数。
例如:我想取myArray={["Michael", "Michael", "Angelo"] , ["Shaw"],["Help me help me"]}
myArray[0]
,并检查它是否包含重复的单词。在这种情况下,结果是肯定的。
我没有得到如何检查myArray [0]中的个人。我怎么能用javascript做。
答案 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
});
答案 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
,然后你应该打破循环。