在两个表之间进行差异

时间:2014-11-07 16:27:28

标签: javascript

我在JavaScript中有两个表,我必须创建一个函数,它将采用两个输入数组并生成差异和顺序。我想要输出:

  • tab1和tab2之间的不同属性
  • 属性和更多信息在tab1 tab2上
  • 属性,而不是在tab1 tab2上

我的表格如[key,value]

var tab1= [];
for (var i = 1; i <= 10; i++) {
  data.push({
    key: i,
    value: "valeur"+i
  });
}
var tab2= [];
for (var i = 1; i <= 15; i++){
  data.push({
    key: i,
    value:"valeur"+i
  });
}

我这样做但是我没有取得好成绩:

for (var aa = 0; aa < tab1.length; aa++) {
                    var Find = false;
                    for (var bb = 0; bb < tab2.length; bb++) {
                        if (tab2[bb].name == $scope.properties.key_value_properties[aa].name) {
                            if (propertiesCible.key_value_properties[bb].value == tab1[aa].value) {
                                Find = true;
                                break;
                            }

                        }
                    }
                    if (Find == false) {
                        finalTab.push({name:tab1[aa].name, valueRef: tab1[aa].value, valueCible: tab1[aa].value});
                    }
                    finalTabDiff.push({name: tab1[aa].name, valueRef: tab1[aa].value, valueCible: tab2[aa].value});

                }

1 个答案:

答案 0 :(得分:0)

使用lodash.js库。

在两个对象上使用_.keys()来获取两个键数组。 然后_.difference()会将两个键数组减少为只包含不常见键的单个数组。