knockout.js 不区分大小写地在可观察敲除数组中搜索项

h7wcgrx3  于 2022-11-23  发布在  其他
关注(0)|答案(2)|浏览(145)

我尝试比较2个数组中的项目:

ko.utils.arrayForEach(arrList, function (item) {
     if (arrList2().findIndex(a => item.toLowerCase() === a.toLowerCase())>=0) {
          // found similar item in arrlist2, so, handle it
     }
    }

但这是行不通的。基本上,我想检查arrList中的元素是否存在于arrList2中(不区分大小写检查),两者都是ko可观察数组。有什么建议吗?

sdnqo3pr

sdnqo3pr1#

您可以使用var differences = ko.utils.compareArrays(arrList(), arrList2());
它会给予你一个数组,其中的项看起来像{status: "added", value: originalItem}
状态将为以下三个值之一added, deleted, retained
看看这篇文章-Utility Functions in KnockoutJS
第一个

11dmarpk

11dmarpk2#

您可以使用Array.prototype.map来创建一个全小写的arrayList2,然后查找arrayList1中的某个项是否也出现在arrayList2中就很简单了:

let arrList2LC = arrList2().map((item) => item.toLowerCase());

arrList1().forEach((item) => {
    if (arrList2LC.indexOf(item.toLowerCase() > -1) {
        // item is present in arrList2
    }
});

相关问题