【发布时间】:2014-06-25 02:50:18
【问题描述】:
我正在构建一个涉及创建对象数组的应用程序,类似于:
var foo = [{
'foo' : 'foo1'
},
{
'foo' : 'foo2'
},
{
'foo' : 'foo3'
}];
然后有一个 HTML 表单,用户可以在其中填写新对象的值。提交表单时,新值被推送到数组中。我想要的是一个 if/else 语句,它检查新对象是否已经存在于数组中。 所以像:
document.getElementById('form').addEventListener('submit',function(){
var newObject = {'foo' : input value goes here }
if (//Checks that newObject doesn't already exist in the array) {
foo.push(newObject)
}
else {
//do nothing
}
});
值得注意的是,我正在使用 Angular
【问题讨论】:
-
只需使用
Object而不是Array。 -
ECMAScript 6 为您提供
.find()方法。if (foo.find(function(obj) { return obj.foo === newObject.foo; }) === undefined) { foo.push(newObject); } -
在这种情况下 [].find() 比 [].some() 好吗?
标签: javascript arrays forms angularjs object