繁体   English   中英

JavaScript:在 Object 数组中查找值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM