私は学生の配列を持っています (すべての ID は一意です):
[Object {ID: 1, "John"}, Object {ID: 2, "Joseph"} ]
文字列の別の配列があります["John","Ram"]
(これを「配列 2」と呼びましょう)。名前が配列 2 にある学生の ID を見つけるにはどうすればよいですか (大文字と小文字を区別せずに、つまり大文字と小文字を区別しません)。
私は学生の配列を持っています (すべての ID は一意です):
[Object {ID: 1, "John"}, Object {ID: 2, "Joseph"} ]
文字列の別の配列があります["John","Ram"]
(これを「配列 2」と呼びましょう)。名前が配列 2 にある学生の ID を見つけるにはどうすればよいですか (大文字と小文字を区別せずに、つまり大文字と小文字を区別しません)。
編集: jQuery を削除し、大文字と小文字を区別する問題を修正します。、およびonの使用により、IE8 との互換性がなくなったことに注意してください。map()
forEach()
indexOf()
Array.prototype
これらの行に沿った何かがうまくいくでしょう:
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/