如何解决JavaScript:在对象数组中查找值
| 我有一个这样定义的对象数组:var editionsObj = new Array();
function editionObject(name,description)
{
this.name = name;
this.description = description;
}
我需要在editionsObj数组中搜索名称字段中是否存在变量。如果数组中没有对象的名称值等于我需要的名称,我将把它插入数组。我已经在jQuery中看到了一些示例,但没有任何示例可以使用。
提前致谢!
解决方法
能够使用类似于以下代码的代码解决此问题:
var objCheck = null;
objCheck = jQuery.grep(editionsObj,function(n,i) {
return n.name == currentEdition;
});
if ((objCheck == null) || (objCheck.length == 0))
{
editionsCount++;
editionsObj[editionsCount] = new editionObject(currentEdition,currentFamily,\'\');
}
基本上,它在对象数组上执行grep,检查某个索引(名称)的值。如果该值不存在,则执行添加。
希望它能帮助别人!
,我将假设您数组的每个元素只有两个属性。如果这是正确的,那么就不要使用命名属性了,而只需使用JS对象即可:
var editionsObj = {};
function addIfNotExists(name,description){
if(!(name in editionsObj)) editionsObj[name] = description;
}
,一个简单的“ 3”循环就足够了:
var nameToSearchFor = \'Bob\',desc = \'whatever\',alreadyExists = false;
for (var i = 0,il = editionsObj.length; i < il; i++) {
if (editionsObj[i].name === nameToSearchFor) {
alreadyExists = true;
break;
}
}
if (!alreadyExists) {
editionsObj.push(new editionObject(nameToSearchFor,desc));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。