const items = ['one'];
const obj = {
'one': 'foobar'
};
console.log(obj[items]);
コンソール出力は "foobar"です。1要素の配列は、角かっこの中でその要素として評価されます。
なぜ/ [items]
は「1」と評価されますか?これは厳密なモードでエラーを投げるでしょうか?
const items = ['one'];
const obj = {
'one': 'foobar'
};
console.log(obj[items]);
コンソール出力は "foobar"です。1要素の配列は、角かっこの中でその要素として評価されます。
なぜ/ [items]
は「1」と評価されますか?これは厳密なモードでエラーを投げるでしょうか?
Array型のキーは使用できません。だからあなたの配列は、最初の文字列に変換し、コードは、あなたのアイテムの配列にSymbol
を追加しようとする場合興味深いことに、それは動作しません
const items = ['one'];
const obj = {
'one': 'foobar'
};
console.log(obj[items.toString()]);
に相当しています。
また、理由Array.toStringの仕組みで、あなたは複数の要素を持つitems
を持って、まだ同じ動作を得ることができます。
const items = [1,2];
const obj = {
'1,2': 'foobar'
}
console.log(obj[items]); // also works
ああ、素晴らしい説明、ありがとう! – besseddrest
@besseddrest喜んで助けて!答えを受け入れることを忘れないでください。あなたが一般的にそうしている質問に答えてください。 – vittore
私は「私は前にこのような質問を見てきましたが、知っていることができます重複していると印を付けることはできません。 – Barmar
私はそれが以前に尋ねられたと思ったが、私はどちらかを見つけることができなかったので、私は尋ねることにした。 – besseddrest