我是angularjs的新手。在此代码段中,我有一个类似于-

$scope.jsonData = [{
        annotationType: "Full Name:"
        endOffset: "17"
        startOffset: "0"
        type: "FullName"
        value: "A"
    },
    {
        annotationType: "Email:"
        endOffset: "188"
        startOffset: "133"
        type: "FullName"
        value: "B"
    }
]


现在,我在这里使用手表。

$scope.$watch('jsonData', function(newVal, oldVal) {
    console.log("Value changed==>", newVal);
}, true);


现在,我的jsonData可能会经常更新,它可能会添加元素或删除。因此,我将从本表中了解如何添加或删除了哪个元素,或者更新了哪个元素的值?而且,如果添加了新值,那么该值或该值的索引是什么?

提前致谢。

最佳答案

我不确定,但是您可以执行以下操作:

newObjects = newVal.filter(new => !oldVal.some(new => JSON.stringify(new) == JSON.stringify(old)) )

removedObjects = oldVal.filter(old => !newVal.some(new => JSON.stringify(new) == JSON.stringify(old)) )

关于javascript - $ watch如何获取数组中已更改的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49798290/

10-11 12:33