私は異なる役割を持つオブジェクトを持っており、特定の色を含む配列を持っています。JavaScript配列内の文字列がオブジェクト内にあるかどうかを調べる
私がしたいことは、roles.nameにcolors配列のいずれかの文字列が含まれているかどうかを確認することです。私は、次のようなさまざまなアプローチ、試してみた:
var colors = ["blue", "yellow", "brown", "red", "green", "pink", "purple"];
var roles = [{"name": "asd"},
{"name": "blue"},
{"name": "yellow"},
{"name": "brown"},
{"name": "red"},
{"name": "green"},
{"name": "pink"},
{"name": "purple"},
{"name": "fgh"},
{"name": "jkl"}];
for (var i = 0; i < roles.length; i++) {
if (roles[i].name.indexOf(colors)) {
console.log(roles[i].name);
}
}
そして
var colors = ["blue", "yellow", "brown", "red", "green", "pink", "purple"];
var roles = [{"name": "asd"},
{"name": "blue"},
{"name": "yellow"},
{"name": "brown"},
{"name": "red"},
{"name": "green"},
{"name": "pink"},
{"name": "purple"},
{"name": "fgh"},
{"name": "jkl"}];
roles.forEach(role => {
if (role.name.indexOf(colors)) {
console.log(role.name);
}
});
をしかし、コードの両方で、その結果は、役割の完全なリストです。
予想される結果として、コンソールにすべての色が記録されます。私が得るのは、コンソールに記録されているすべての役割です。
あなたが使用することができます[ 'アレイ#find'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)と[' Array#findIndex'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex)もあります。 – Xotic750
あなたのオブジェクトには同じ名前のすべてのキーがありますが、文字通り 'name'と呼ばれていますので、前の文字を上書きしてしまいます。キーと値。 – adeneo
配列のようなオブジェクトを扱うときに、どのようにすべてのロールが記録されますか? –