Array.push()如果不存在?

如果两个值都不存在,如何推入数组?这是我的数组:

[

{ name: "tom", text: "tasty" },

{ name: "tom", text: "tasty" },

{ name: "tom", text: "tasty" },

{ name: "tom", text: "tasty" },

{ name: "tom", text: "tasty" }

]

如果我尝试使用name: "tom"或再次将其推入数组text:

"tasty",我什么都不希望发生…但是如果这两个都不存在,那么我希望它.push()

我怎样才能做到这一点?

回答:

您可以使用自定义方法扩展Array原型:

// check if an element exists in array using a comparer function

// comparer : function(currentElement)

Array.prototype.inArray = function(comparer) {

for(var i=0; i < this.length; i++) {

if(comparer(this[i])) return true;

}

return false;

};

// adds an element to the array if it does not already exist using a comparer

// function

Array.prototype.pushIfNotExist = function(element, comparer) {

if (!this.inArray(comparer)) {

this.push(element);

}

};

var array = [{ name: "tom", text: "tasty" }];

var element = { name: "tom", text: "tasty" };

array.pushIfNotExist(element, function(e) {

return e.name === element.name && e.text === element.text;

});

以上是 Array.push()如果不存在? 的全部内容, 来源链接: utcz.com/qa/397289.html

回到顶部