サンプル・オブジェクトをオブジェクトキーを変換しますか?あなたは、この機能で発生したいコメントで言ったようにJavascriptが画像に
var images = { "foo": "bar.jpg" }
for (var imageKey in images) {
images[imageKey] = ctx.drawImage(images[imageKey],x,y)
}
サンプル・オブジェクトをオブジェクトキーを変換しますか?あなたは、この機能で発生したいコメントで言ったようにJavascriptが画像に
var images = { "foo": "bar.jpg" }
for (var imageKey in images) {
images[imageKey] = ctx.drawImage(images[imageKey],x,y)
}
を見て、あなたがイメージパスがImage
型のオブジェクトに変異させたいこと:
一つの方法は、それを行うにはあなたが関数にimages
オブジェクトを渡すと、それはその鍵をループます
var images = { "foo": "bar.jpg" };
function transformImagePaths(images){
Object.keys(images).forEach(key => {
let imagePath = images[key];
images[key] = new Image();
images[key].src = imagePath;
});
}
、および画像とパスを交換することにより、各キーに割り当て直す:、私は、これはあなたが探しているものだと思います。
このガイダンスをありがとうございます。しかし、オブジェクト変数はグローバル変数であり、エレガンスのために関数内でキーを画像に変更する必要があります。次に、それらを別の関数で描画します。 –
私たちはReact Nativeの画像コンポーネントをそのまま使っているのですが、それは正しいのですか? –
新しいグローバルオブジェクトを作成せずにわかったので、純粋なJavascriptで実現することは不可能です。 –
// first proving approach
var imageMap = {
"foo": "bar.jpg",
"baz": "biz.jpg"
};
console.log('imageMap : ', imageMap);
Object.keys(imageMap).forEach(function (imageKey) {
var img = (new Image);
img.src = imageMap[imageKey];
imageMap[imageKey] = img;
});
console.log('imageMap : ', imageMap);
// final iteration
var imageMap = {
"foo": "bar.jpg",
"baz": "biz.jpg"
};
console.log('imageMap : ', imageMap);
function assignImageToBoundMap(key) {
var img = (new Image);
img.src = this[key];
this[key] = img;
}
function reassignImageMap(map) {
Object.keys(map).forEach(assignImageToBoundMap, map);
}
reassignImageMap(imageMap);
console.log('imageMap : ', imageMap);
.as-console-wrapper { max-height: 100%!important; top: 0; }
あなたはもう少し説明を与えることはできますか? 「新しいオブジェクトを作成せずに」という意味はどうですか?イメージオブジェクトを直接変更しますか?だからあなたは新しいものの代わりにイメージでいっぱいのイメージオブジェクトで終わりたいですか? –
@AlexanderVitanovはい私はキーを直接変更したかったのです。それに点を付ける方法はありますか? –
はい、回答は –