按名称 Jquery 数组查找 id [重复]

Posted

技术标签:

【中文标题】按名称 Jquery 数组查找 id [重复]【英文标题】:Find id by Name Jquery arrays [duplicate] 【发布时间】:2013-11-07 05:06:31 【问题描述】:

我有一组学生(所有 ID 都是唯一的):

[Object ID: 1, "John", Object  ID: 2, "Joseph" ]

我有另一个字符串数组["John","Ram"](我们称之为“数组2”)。 如何找到名称在数组 2 中的学生的 ID(不考虑大小写,即不区分大小写)?

【问题讨论】:

“其他字符串数组”应该是["John","ram"]吗? ID: 1, "John" 不是一个合适的对象 -- 这些名称应该在属性中设置。 我编辑为对象 ID: 1, "John" ... 这仍然不是有效的 javascript。 jQuery 只是一个 JavaScript 库——在这种情况下绝对不需要这个库。无论如何,每个 ID 后面的逗号肯定是一个错误(那是 SyntaxError)? 【参考方案1】:

编辑:删除 jQuery 并修复区分大小写的问题。请注意,这是no longer compatible with IE8,因为在Array.prototype 上使用了map()forEach()indexOf()

按照这些思路可以解决问题:

var names = ['John', 'Joe', 'Ralph'],
    data = [
        
            id: 1,
            name: 'John'
        ,
        
            id: 2,
            name: 'Joseph'
        ,
        
            id: 3,
            name: 'ralph'
        
    ],
    results = [];

var lnames = names.map(function(name) 
    return name.toLowerCase();
);

data.forEach(function(item) 
    if (lnames.indexOf(item.name.toLowerCase()) > -1) 
        results.push(item.id);
    
);

console.log('found: ', results);

这是一个活生生的例子:http://jsfiddle.net/6ptz3/2/

【讨论】:

这是一个原生 JS 解决方案顺便说一句 - still 没有回答 OP 的问题,因为问题格式不正确且结构不清楚:var ids = studentsArray.filter(function(elem) return namesArray.indexOf(elem.name) !== -1; /* in the names array*/ ).map(function(elem) return elem.ID; ); 在编辑之前,问题中的最后一句话是:“[我正在使用 jquery]”......所以,回答你的问题:OP。 那么抱歉,我的错。我没有看到 OP 在编辑之前提到他正在使用 jQuery。 没问题,感谢您指出 jQuery 已从问题中删除。另外,我必须解决一个区分大小写的问题,我认为您在评论中提到的解决方案中也可能存在该问题。

以上是关于按名称 Jquery 数组查找 id [重复]的主要内容,如果未能解决你的问题,请参考以下文章

jquery - 按名称访问表单输入字段[重复]

在不同文件的数组中查找重复名称

如何使用jquery或javascript对对象数组进行排序[重复]

需要使用Jquery按元素名称获取标签名称[重复]

按数据名称属性查找 div [重复]

使用 jQuery 通过 ID 名称查找类