如何查找在一个 dstore 集合中但不在另一个集合中的项目?

How to find items that are in one dstore collection but not in another?

假设我有两个 dstore 集合:value1 和 value2。

我想找出哪些项目在 value1 中但不在 value2 中。所以像这样:

var filterCollection = value1.filter(function(item) {
    return value2.notExists(item);
});

但是 "notExists" 函数不存在。我如何使这个逻辑起作用?

由于 dstore 默认不包含此功能,您可以编写自己的函数来比较 dstores 的内容,并根据需要使用结果。

这里是一个通用的例子。您需要使用 dstore.

的内容填充 value1value1

简化示例。

http://jsbin.com/fozeqamide/edit?html,console,output

不使用 indexOf() 的版本

http://jsbin.com/nihelejodo/edit?html,console,output

datastore 中循环的方式与其数据结构有关。

注意:这是一个通用示例,因为该问题未提供任何源代码,也未提供 dstore 中的数据示例。

<!doctype html>

<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Builder</title>
    <style>
    </style>
    <script>
        window.app = {
            value1: [1, 2, 3, 4, 5, 6, 4, 8], // populate with date for valu1 dstore
            value2: [1, 2, 6, 4, 8], // populate with date for valu1 dstore
            valueNotExists: [],
            start: function () {
                this.notExists();
            },
            notExists: function () {
                this.valueNotExists = this.value1.filter(function (x) {
                    return this.value2.indexOf(x) < 0;
                }.bind(this));
                console.log(this.valueNotExists);
            },
        };
    </script>

</head>

<body onload="window.app.start();">

</body>
</html>