-4

私は学生の配列を持っています (すべての ID は一意です):

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

文字列の別の配列があります["John","Ram"](これを「配列 2」と呼びましょう)。名前が配列 2 にある学生の ID を見つけるにはどうすればよいですか (大文字と小文字を区別せずに、つまり大文字と小文字を区別しません)。

4

1 に答える 1

1

編集: 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/

于 2013-10-28T12:28:17.423 に答える