我正在尝试比较json_str1和json_str2,在这里它应该返回true,因为json_str2中存在json_str1中的所有元素。
现在我正在像这样长期
json_str1 = '{"0":"a","1":"b","2":"c"}';
json_str2 = '{"0":"c","1":"b","2":"a"}';
json_obj1 = $.parseJSON(json_str1);
json_obj2 = $.parseJSON(json_str2);
arr1 = $.map(json_obj1, function(el) { return el });
arr2 = $.map(json_obj2, function(el) { return el });
if($(arr1).not(arr2).length === 0 && $(arr2).not(arr1).length === 0)
alert("equal");
else
alert("not equal");
在不将对象转换为数组的情况下,如何使它简短而简单?
使用以下代码:
Object.keys(json_obj1) . every(k1 =>
Object.keys(json_obj2) . some(k2 =>
json_obj1[k1] === json_obj2[k2]
)
);
用英语讲:
k1
in中的每个key都json_obj1
满足某些keyk2
中json_obj2
的条件满足json_obj1
with keyk1
的值等于json_obj2
with key的条件k2
。
或者使用更多的会话英语:
第一个对象中的每个值都与第二个对象中的某个值匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句