检查JS是否包含具有相同attributs值的对象

时间:2016-11-22 11:07:49

标签: javascript arrays object contains

我正在寻找一种方法,它通常会检查一个数组是否包含一个具有完全相同的参数值的对象。

不是特定的,一般的实现。

例如:

var obj1 = {name : 'name1', id : 1, value : 'value1'};
var obj2 = {name : 'name2', id : 2};
var obj3 = {name : 'name3', id : 3, value : 'value1', title : 'title3'};
var obj4 = {name : 'name4', id : 4, value : 'value1', title : null};

var arrayObj = [obj1, obj2, obj3, obj4];

var test1 = {name : 'name1', id : 1}; // One missing attribut
var test2 = {name : 'name2', id : 2, value : 'value2'}; // One additional attribut
var test3 = {name : 'name3', id : 3, value : 'value1', title : 'title33'}; // attribut with different value
var test4 = {name : 'name4', id : 4, value : 'value1'}; // same attributs beside the null one
var test5 = {name : 'name3', id : 3, value : 'value1', titleBis : 'title3'}; // attributs with different names
var test6 = {value : 'value1', id : 1, name : 'name1'}; // same attributs and attributs value but in different order

containsMethod(arrayObj, test1); // false
containsMethod(arrayObj, test2); // false
containsMethod(arrayObj, test3); // false
containsMethod(arrayObj, test4); // true
containsMethod(arrayObj, test5); // false
containsMethod(arrayObj, test6); // true
containsMethod(arrayObj, obj2); // true

如果不清楚,请在评论中告诉我。 我已经看到了很多特定对象的问题,这里我正在寻找一个通用版本。

理想情况下,这也适用于String,数字等,而不仅仅是具有attributs的对象

0 个答案:

没有答案