-2

这是一个 js 对象,它代表我正在处理的命令行 os 项目中的文件系统:

var obj = {
        "1": {
            "hi": "hi"
        }, 
        "2": {
            "bye": "bye"
         }
    };
var currentDir = obj["1"]["hi"];
console.log(currentDir);

当我运行这个时,我得到

"hi"

我如何让它显示为

/1/hi/

我需要获取当前选择对象的“文件路径”。

4

3 回答 3

3

制作某种查找功能

var lookup = (function (o) {
    return function lookup() {
        var i, e = o, s = '';
        for (i = 0; i < arguments.length; ++i) {
            s += '/' + arguments[i];
            if (!e.hasOwnProperty(arguments[i]))
                throw "PathNotFoundError: " + s;
            e = e[arguments[i]];
        }
        return {path: s, value: e};
    }
}(obj));

并使用它

console.log(lookup('1', 'hi').path); // "/1/hi"
于 2013-06-26T14:46:00.660 回答
0

您的代码返回"hi"So doesvar currentDir = obj[1].hi;

于 2013-06-26T14:39:34.937 回答
0

当您访问您的对象时,您已经知道路径。做这样的事情:

console.log(firstIndex + '/' + secondIndex + '/ + obj[firstIndex][secondIndex]);

你可以在for循环、each循环while等中使用它。或者像你的例子一样直接访问。

于 2013-06-26T14:44:55.287 回答