【发布时间】:2017-02-01 14:17:04
【问题描述】:
假设我有两个深层对象:
var oldData = {
"id": 1,
"first_name": "Eric",
"last_name": "Henry",
"info": {
"email": "ehenry0@smh.com.au",
"gender": "Male",
"ip_address": "7.11.169.150",
"age": 11
}
};
var newData = {
"id": 2,
"first_name": "Tommy",
"last_name": "Henry",
"info": {
"email": "tommy@ghenrry.com",
"gender": "Male",
"ip_address": "7.11.169.150",
"age": 15
}
};
我将如何使用 lodash(或 JavaScript)遍历每个对象并获取每个不同值的值,所以在最上面的情况下它会是
[
{old: 1, new: 2},
{old: 'Eric', new: 'Tommy'},
{old: 'ehenry0@smh.com.au', new: 'tommy@ghenrry.com'},
{old: 11, new: 15},
]
这是我目前所拥有的:
var oldData = {
"id": 1,
"first_name": "Eric",
"last_name": "Henry",
"info": {
"email": "ehenry0@smh.com.au",
"gender": "Male",
"ip_address": "7.11.169.150",
"age": 11
}
};
var newData = {
"id": 2,
"first_name": "Tommy",
"last_name": "Henry",
"info": {
"email": "tommy@ghenrry.com",
"gender": "Male",
"ip_address": "7.11.169.150",
"age": 15
}
};
var diffObj = _.difference(_.keys(oldData), _.keys(newData));
console.log(JSON.stringify(diffObj, null, 4));
<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>
【问题讨论】:
-
@AlaEddineJEBALI 这些答案没有提供我需要帮助的解决方案。第一个答案:不是深度比较,第二个答案:isEqual 比较,第三个答案:似乎不起作用。
标签: javascript