javascript - 从函数返回数组

标签 javascript arrays function

--由 Elliot B 解决。谢谢! 还可能考虑其他修改。

这是结果。谢谢大家的快速答复! http://dl.dropbox.com/u/18785762/Rust/index.html

我正在用 javascript 编写游戏,我想将用于将 block ID 与 map 编译器中的文件相匹配的文件保留在单独的 .js 文件中,以便我可以轻松编辑内容。然而,ID 存储在一个数组中,我似乎无法让它正确使用返回函数。有什么帮助吗?

drawmap.js:

function drawmap() {
    
    var images = BlockID();
    
    var level = [
    "ssssssssssssssssssssss",
    "sgggggggggCCCCCdddddss",
    "ssssssssss     sssssss"
    ];

    var top = 100;
    var left = 100;
    var mytop = top;
    var myleft = left;
    for (y=0; y<level.length; ++y) {
        var row = level[y];
        for (x=0; x < row.length; ++x) {
            var c = row.charAt(x);
            if(c != ' ') {
                img_create(images[c], mytop, myleft);
            }
            mytop += 13;
            myleft += 27;
        }
        mytop = top + (y+1)*13;
        myleft = left - (y+1)*27;
    }
}

mapread.js:

function BlockID() {
    var IDs = new Array();
        images['s'] = "Images/Block_01.png";
        images['g'] = "Images/Block_02.png";
        images['C'] = "Images/Block_03.png";
        images['d'] = "Images/Block_04.png";
    return IDs;
}

最佳答案

至少,更改此:

function BlockID() {
    var IDs = new Array();
        images['s'] = "Images/Block_01.png";
        images['g'] = "Images/Block_02.png";
        images['C'] = "Images/Block_03.png";
        images['d'] = "Images/Block_04.png";
    return IDs;
}

对此:

function BlockID() {
    var IDs = new Object();
        IDs['s'] = "Images/Block_01.png";
        IDs['g'] = "Images/Block_02.png";
        IDs['C'] = "Images/Block_03.png";
        IDs['d'] = "Images/Block_04.png";
    return IDs;
}

有一些修复需要指出。 首先images 未在您的原始函数中定义,因此为其分配属性值将引发错误。我们通过将 images 更改为 ID 来纠正此问题。 第二,您想要返回一个对象,而不是数组。可以为对象分配类似于关联数组或散列的属性值,而数组则不能。因此,我们将 var IDs = new Array(); 的声明更改为 var IDs = new Object();

进行这些更改后,您的代码将运行良好,但可以进一步简化。您可以使用简写符号(即对象文字属性值简写)来创建对象并立即返回它:

function BlockID() {
    return {
            "s":"Images/Block_01.png"
            ,"g":"Images/Block_02.png"
            ,"C":"Images/Block_03.png"
            ,"d":"Images/Block_04.png"
    };
}

关于javascript - 从函数返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059478/

相关文章:

c++ - 调用了错误的模板函数

python - python 中搜索字符串的函数

javascript - 按钮创建功能代码错误无法定位

javascript - React - 无法读取未定义的属性 'call'

javascript - 如果数组中的项目与另一个数组中的项目一致,则替换它们

android - 在 Android 中的蓝牙打印机上打印图像

javascript - 输出 og :image tag? 的特定 div 的第一个图像 url

Javascript OnPageUnload - 在 "leave page"上必须调用附加方法

c - 如何在 MIPS 汇编中初始化一个巨大的数组?

bash - myFun() 和函数 myFun 之间的区别