-2

これは、私が取り組んでいるコマンドライン os プロジェクトのファイル システムを表す js オブジェクトです。

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"そうしますvar 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 に答える