[英]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.