我正在寻找一种比较一个数组中的字符串与另一个数组中的字符串的好方法。如果一个或多个字符串与另一个数组中的字符串匹配,请使用此元素执行某些操作,其中匹配的字符串为= element attr + other element attr。
非常感谢!
修改
var cSC = $('.cpa');
var existingSel = cSC.map(function () {
return $(this).attr("data-fd") + $(this).attr("data-t");
}).get();
console.log(existingSel);
if (sessionStorage.trueDates) {
var oldArr = JSON.parse(sessionStorage.trueDates);
}
else {
var oldArr = JSON.parse(sessionStorage.calDT);
}
var uiSel = $(".class");
var calDataStore = uiSel.map(function(){
return $(this).attr("data-fd") + $(this).attr("data-t");
}).get();
sessionStorage.setItem("calDT", JSON.stringify(calDataStore));
console.log(JSON.parse(sessionStorage.calDT));
var newArr = JSON.parse(sessionStorage.calDT);
var trueArr = newArr.concat(oldArr);
sessionStorage.setItem("trueDates", JSON.stringify(trueArr));
});
if (sessionStorage.trueDates) {
console.log(JSON.parse(sessionStorage.trueDates));
}
我想比较这些数组(existingSel& oldArr)
for(var ii=0; ii < existingSel.length; ii++){
if(existingSel[ii] == oldArr[ii]){
console.log('Match found!');
}
}
但他们什么都没有(没有控制台消息)
我有一个重置按钮,可以点击:
sessionStorage.removeItem("trueDates");
sessionStorage.setItem("calDT", "0");
答案 0 :(得分:1)
您可以使用indexOf
迭代第一个数组并检查元素是否在第二个数组中:
var array1 = ["foo", "bar" , "baz" , "quux"];
var array2 = ["asd", "bsd", "foo", "quux"];
for(var i=0; i < array1.length; i++) {
if (array2.indexOf(array1[i]) != -1) {
console.log('found ' + array1[i] + ' in second array');
}
}
答案 1 :(得分:0)
你只需迭代每个类似的数组并进行比较:
var array1 = [1,2,3,4];
var array2 = [1,3,5,6];
for(var ii=0; ii < array1.length; ii++){
if(array1[ii] == array2[ii]){
//do some stuff here
}
}