[英]JavaScript: Finding a value in an Object Array
我有一个这样定义的对象数组:
var editionsObj = new Array();
function editionObject(name,description)
{
this.name = name;
this.description = description;
}
我需要在 editionsObj 数组中搜索名称字段中是否存在变量。 如果数组中没有 object 的名称值等于我需要的值,我将把它插入到数组中。 我在 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,'');
}
基本上它在 object 数组上执行 grep ,检查某个索引(名称)的值。 如果该值不存在,那么我执行添加。
希望它可以帮助别人!
我将假设您的数组的每个元素只有两个属性。 如果这是正确的,那么忘记命名属性的想法,只使用 JS object:
var editionsObj = {};
function addIfNotExists(name,description){
if(!(name in editionsObj)) editionsObj[name] = description;
}
一个简单for
循环就足够了:
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));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.