【问题标题】:Compare strings in array to other strings array将数组中的字符串与其他字符串数组进行比较
【发布时间】:2015-04-28 07:11:28
【问题描述】:

我正在寻找一种将一个数组中的字符串与另一个数组中的字符串进行比较的好方法。如果一个或多个字符串与另一个数组中的字符串匹配,则对这个元素执行一些操作,其中匹配的字符串为 = 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");

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 我现在添加了我的代码,请参阅编辑

标签: javascript jquery arrays string


【解决方案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');
   }
}

【讨论】:

  • 非常感谢!这工作得很好,现在我需要的最后一件事是如果从元素中删除一个类,则从 array2 中删除一个字符串,有没有简单的方法可以做到这一点?
  • @Plainawesomeweb 要从数组中删除元素,请使用 .splice(index, 1) 数组方法。
【解决方案2】:

您只需迭代每个喜欢的数组并像这样进行比较:

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
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多