以下に 2 つの行を示します。
pixels[x-left] = {};
pixels[x-left][y] = true;
この 2 つを 1 つの式に組み合わせることができれば、一部のコードを大幅にクリーンアップできます。
私の最初の試みは次のようになりました:
pixels[x-left] = { y: true };
ただし、文字y
は の値の代わりにインデックスとして使用されておりy
、これは問題ありません。
以下に 2 つの行を示します。
pixels[x-left] = {};
pixels[x-left][y] = true;
この 2 つを 1 つの式に組み合わせることができれば、一部のコードを大幅にクリーンアップできます。
私の最初の試みは次のようになりました:
pixels[x-left] = { y: true };
ただし、文字y
は の値の代わりにインデックスとして使用されておりy
、これは問題ありません。
いいえ、きれいなものはありません*。オブジェクト リテラル内のプロパティ名は、文字どおりに解釈されます。
1つの方法は、次のようなヘルパー関数です。
Object.set = function(o, p, v) { o[p] = v; return o; };
pixels[x-left] = Object.set({}, y, true);
しかし、その場合、コードを読んでいるすべての人が について知る必要がありますObject.set
。
* @Fabricio の回答の後、「可能性がない」とは言えません :-)