按名称 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章