-1

指定された名前のプロパティを見つけて、所有者オブジェクトに新しいプロパティを追加する方法は?

私は次のようなデータ構造を持っています:

var factoryOptions = {
            background: {
                src: 'images/background.png',
                width: 4800,
                height: 3200
            },
            player: {
                sprite: {
                    src: 'images/tanks/superTank.ss.png',
                    frameTime: 10,
                    frameCount: 3
                },
                width: 54,
                height: 32
            },
            tanks: {
                light: {
                    sprite: {
                        src: 'images/tanks/lightTank.png',
                        frameTime: 100,
                        frameCount: 1
                    },
                    width: 32,
                    height: 32
                },
                medium: {
                    sprite: {
                        src: 'images/tanks/mediumTank.png',
                        frameTime: 10,
                        frameCount: 1
                    },
                    width: 46,
                    height: 46
                },
                heavy: {
                    sprite: {
                        src: 'images/tanks/heavyTank.png',
                        frameTime: 10,
                        frameCount: 1
                    },
                    width: 64,
                    height: 64
                }
            }
        }
    }

すべてのプロパティ「src」を検索し、この src でイメージを追加して所有者オブジェクトを変更したいので、最終結果は次のようになります。

var factoryOptions = {
            background: {
                src: 'images/background.png',
                width: 4800,
                height: 3200,
                image: new Image()
            },
            player: {
                sprite: {
                    src: 'images/tanks/superTank.ss.png',
                    frameTime: 10,
                    frameCount: 3,
                    image: new Image()
                },
                width: 54,
                height: 32
            },
            tanks: {
                light: {
                    sprite: {
                        src: 'images/tanks/lightTank.png',
                        frameTime: 100,
                        frameCount: 1,
                        image: new Image()
                    },
                    width: 32,
                    height: 32
                },
                medium: {
                    sprite: {
                        src: 'images/tanks/mediumTank.png',
                        frameTime: 10,
                        frameCount: 1,
                        image: new Image()
                    },
                    width: 46,
                    height: 46
                },
                heavy: {
                    sprite: {
                        src: 'images/tanks/heavyTank.png',
                        image: new Image(),
                        frameTime: 10,
                        frameCount: 1
                    },
                    width: 64,
                    height: 64
                }
            }
        }
    }
4

2 に答える 2