簡體   English   中英

使用 JavaScript 從有序字典中融化元素

[英]Melt elements from ordered dictionary with JavaScript

我對 JavaScript 很陌生。 有人可以幫我將 python 代碼翻譯成 JavaScript 嗎? 深表贊賞。

我有一個有序的字典:

dict1 = [OrderedDict([('emo', 'StimusEmo/2205.bmp')]), OrderedDict([('emo', 'StimusEmo/9185.bmp')]), OrderedDict([('emo', 'StimusEmo/6313.bmp')]), OrderedDict([('emo', 'StimusEmo/9252.bmp')]), OrderedDict([('emo', 'StimusEmo/3230.bmp')]), OrderedDict([('emo', 'StimusEmo/1300.bmp')]), OrderedDict([('emo', 'StimusEmo/9921.bmp')])]

我想使用 JavaScript 代碼使其成為(如果 JavaScript 識別字典):

dict2 = {'emo': ['StimusEmo/2205.bmp', 'StimusEmo/9185.bmp', 'StimusEmo/6313.bmp', 'StimusEmo/9252.bmp', 'StimusEmo/3230.bmp', 'StimusEmo/1300.bmp', 'StimusEmo/9921.bmp']}

或者只是一個列表:

emo = ['StimusEmo/2205.bmp', 'StimusEmo/9185.bmp', 'StimusEmo/6313.bmp', 'StimusEmo/9252.bmp', 'StimusEmo/3230.bmp', 'StimusEmo/1300.bmp', 'StimusEmo/9921.bmp']

我已經編寫了成功完成工作的python代碼:

for k in dic1[0]:
    dic2[k] = [d[k] for d in dic1]

我的自動 JavaScript 翻譯器給了我這個:

for (var k, _pj_c = 0, _pj_a = dict1[0], _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {
    k = _pj_a[_pj_c];
    dict2[k] = function () {
    var _pj_d = [], _pj_e = dict1;
    for (var _pj_f = 0, _pj_g = _pj_e.length; (_pj_f < _pj_g); _pj_f += 1) {
        var d = _pj_e[_pj_f];
        _pj_d.push(d[k]);
    }
    return _pj_d;
}
.call(this);
}

但是,此 JavaScript 產生錯誤為:未識別 .length。 我將 .length 更改為我訂購的字典長度。 還是行不通。

很抱歉,我幾乎沒有使用 JavaScript 的經驗。 我想我會提供自動翻譯來幫助激發解決方案。 任何事情都可以提供幫助。 謝謝!

你可以這樣做:

 const dic1 = [ {'emo': 'StimusEmo/2205.bmp'}, {'emo': 'StimusEmo/9185.bmp'}, {'emo': 'StimusEmo/6313.bmp'}, {'emo': 'StimusEmo/9252.bmp'}, {'emo': 'StimusEmo/3230.bmp'}, {'emo': 'StimusEmo/1300.bmp'}, {'emo': 'StimusEmo/9921.bmp'}, ] const dic2 = {}; dic1.forEach((dic) => { const key = Object.keys(dic)[0]; const arr = dic2[key] || (dic2[key] = []); arr.push(dic[key]); }); console.log(dic2); // Outputs // { // emo: ["StimusEmo/2205.bmp", "StimusEmo/9185.bmp", "StimusEmo/6313.bmp", "StimusEmo/9252.bmp", "StimusEmo/3230.bmp", "StimusEmo/1300.bmp", "StimusEmo/9921.bmp"] // }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM