如果我有这样的数组:
arr = ["hey", "some", "string", "aaa", "ccc"];
我想比较数组中是否有相同的字符串但是有一个特殊的规则:
如果arr [1] =="某些"
arr = ["hey", "bbb", "string", "aaa", "ccc"]; //return true
arr = ["hey", "some", "string", "aaa", "bbb"]; //return true
arr = ["hey", "some", "string", "aaa", "some"]; //return false
我已经知道如何将字符串与此代码进行比较:
var arr = ["hey", "some", "string", "aaa", "ccc"];
var val = $('#somethingFromTableForm').val();
for(var i = 0; i < arr.length; i++) {
if (arr[i].indexOf(val) > -1){
alert("same string");
return false;
}
}
return true;
但是如何将字符串与此特殊规则进行比较?
答案 0 :(得分:0)
您可以使用Array#indexOf
和Array#lastIndexOf
并检查Array#every
每个元素的相等性。
function check(array) {
return array.every(function (a, i, aa) {
return i === aa.lastIndexOf(a);
});
}
console.log(check(["hey", "bbb", "string", "aaa", "ccc"])); // true
console.log(check(["hey", "some", "string", "aaa", "bbb"])); // true
console.log(check(["hey", "some", "string", "aaa", "some"])); // false
&#13;