javascript - 为什么对象的键只是第一个字符?
问题描述
如何获取翻译对象中列出的值?
我正在尝试使用数组解构来获取对象值。
即使在获取键时,javascript 也不会返回完整的键值,例如getaQuote
它只是第一个字母g
。
预期的控制台结果将是:
getaQuote : a : Get a Quote: Kostenloses Angebot : Richiedi un preventivo : Teklif Al
uploadFile : b : Upload File: Datei Upload : Datei Upload : Dosya Gönder
"use strict";
const translations = {
getaQuote: {
loc: "a",
en: "Get a Quote",
de: "Kostenloses Angebot",
it: "Richiedi un preventivo",
tr: "Teklif Al"
},
uploadFile: {
loc: "b",
en: "Upload File",
de: "Datei Upload",
it: "Datei Upload",
tr: "Dosya Gönder"
},
contacts: { loc: "c", en: "Contacts", de: "Kontakt", it: "Contatti" , tr: "İletişim"}
};
for (let [key, value] in translations ) {
let result = `${key}: ${value.loc} : ${value.en} : ${value.de} : ${value.it}: ${value.tr}`;
console.log(result);
}
解决方案
您可以使用for ... in
语句从对象中获取键,但字符串会使用前两个字符进行解构。
字符串的解构调用实现的迭代器并返回字符。
const [key, value] = 'get';
console.log(key);
console.log(value);
为了克服这个问题,您可以迭代对象的条目并使用for ... of
statement获取解构的对。
"use strict";
const translations = {
getaQuote: {
loc: "a",
en: "Get a Quote",
de: "Kostenloses Angebot",
it: "Richiedi un preventivo",
tr: "Teklif Al"
},
uploadFile: {
loc: "b",
en: "Upload File",
de: "Datei Upload",
it: "Datei Upload",
tr: "Dosya Gönder"
},
contacts: { loc: "c", en: "Contacts", de: "Kontakt", it: "Contatti" , tr: "İletişim"}
};
for (let [key, value] of Object.entries(translations)) {
let result = `${key}: ${value.loc} : ${value.en} : ${value.de} : ${value.it}: ${value.tr}`;
console.log(result);
}
推荐阅读
- javascript - mat stepper bar 不在 npm 注册表中
- python - 如何启动 pdb 并从 REPL 进入函数?
- android - 当我在 Playstore 中搜索时,Google Play 控制台不显示应用统计信息也不显示
- php - Symfony3.4:预期的 X 参数。找到 X
- python - Mac 上的 Python 模块
- javascript - 如何从列表js中删除特定项目?
- azure - 使用带有 MSAL.js 的 Javascript 客户端应用程序时,如何在访问令牌中获取应用程序角色声明 (Roles) 以访问受保护的 API
- java - 逻辑错误,Java中字符串的二进制搜索
- android - Glide 生成大小为 0 的 ImageView
- javascript - 使用正则表达式从字符串末尾重复字符集