【发布时间】:2015-02-05 20:33:15
【问题描述】:
我有下一个对象:
var persons= {};
persons["Matt"].push("A");
persons["Matt"].push("B");
persons["Matt"].push("C");
我想知道对象是否包含我尝试插入的元素。
例如:
persons["Matt"].push("A"); /* The element A already exist... And I don't want duplicate elements.*/
有人知道制作方法吗?
编辑更多细节:
我有一个下一个代码:
function insertIfNotThere(array, item) {
if (array.indexOf(item) === -1) {
array.push(item);
}
}
function EventManager(target) {
var target = target || window, events = {};
this.observe = function(eventName, cb) {
if (events[eventName]){
insertIfNotThere(events[eventName], cb);
}else{
events[eventName] = []; events[eventName].push(cb);
}
return target;
};
this.fire = function(eventName) {
if (!events[eventName]) return false;
for (var i = 0; i < events[eventName].length; i++) {
events[eventName][i].apply(target, Array.prototype.slice.call(arguments, 1));
}
};
}
我使用您的方法来检查具有指示内容的元素是否存在。但是......它推动了元素......我不知道发生了什么......
【问题讨论】:
-
persons = {};创建一个对象,而不是一个数组。 -
感谢您的更正 :) 我将编辑我的问题。
标签: javascript arrays duplicates javascript-objects