5 回答

TA貢獻1877條經驗 獲得超1個贊
您可以使用Array reduce方法來制作結果對象。
let weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"];
let translatedArray = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi"];
let ret = weekdays.reduce((p, c, i) => {
p[c] = translatedArray[i];
return p;
}, {});
console.log(ret);
console.log(ret["Tuesday"]);

TA貢獻1786條經驗 獲得超13個贊
我的簡單方法是在這樣的對象中維護一個 json
let weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];
let anotherLanguageDays = {
"Monday" : "星期一",
"Tuesday" : "星期一",
... and so on
};
現在當你遍歷數組時你可以做這樣的事情
weekdays.forEach(d => {
console.log(anotherLanguageDays[d]);
})
您的代碼的完整示例...
let weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];
let anotherLangauge = {
Monday : "Lundi",
Tuesday : "Mardi",
Wednesday : "Mercredi",
Thursday : "Jeudi",
Friday : "Vendredi"
};
weekdays.forEach(d => {
console.log(anotherLangauge[d]);
})

TA貢獻1813條經驗 獲得超2個贊
使用代表語言代碼的鍵創建一個對象。每種語言代碼都有另一個對象,其中包含單詞和該語言中單詞的翻譯。
編寫一個函數,該函數接受一個字符串數組作為您要翻譯的單詞,以及一個指示從哪種語言獲取翻譯的語言代碼。
確保將所有鍵都小寫以保持統一。這些值沒有小寫。
按照這種方法,您可以通過添加更多語言和單詞來輕松擴展。
const translations = {
'en-US': {
monday: 'Monday',
tuesday: 'Tuesday',
wednesday: 'Wednesday',
thursday: 'Thursday',
friday: 'Friday',
saturday: 'Saturday',
sunday: 'Sunday'
},
'fr-FR': {
monday: 'Lundi',
tuesday: 'Mardi',
wednesday: 'Mecredi',
thursday: 'Jeudi',
friday: 'Vendredi',
saturday: 'Samedi',
sunday: 'Dimanche'
},
'nl-NL': {
monday: 'Maandag',
tuesday: 'Dinsdag',
wednesday: 'Woensdag',
thursday: 'Donderdag',
friday: 'Vrijdag',
saturday: 'Zaterdag',
sunday: 'Zondag'
}
};
const translate = (strings, language) => {
if (!translations.hasOwnProperty(language)) {
throw new Error(`Language ${language} does not exist in the translations object.`);
}
const set = translations[language];
return Object.entries(set)
.filter(([ key, value ]) => strings.includes(key))
.map(([ key, value ]) => value);
};
let weekdays = [
'monday',
'tuesday',
'wednesday',
'thursday',
'friday'
];
const frenchWeekdays = translate(weekdays, 'fr-FR');
const englishWeekdays = translate(weekdays, 'en-US');
const dutchWeekdays = translate(weekdays, 'nl-NL');
console.log(frenchWeekdays);
console.log(englishWeekdays);
console.log(dutchWeekdays);
// Example with non existent translations.
translate(weekdays, 'de-DE');

TA貢獻1812條經驗 獲得超5個贊
它主要歸結為選擇最方便的map
ping 方法。一種可能的方法可能類似于下一個提供的示例代碼......
const i18nMap = {
? "en-GB": {
? ? weekdays: {
? ? ? monday: "Monday",
? ? ? tuesday: "Tuesday",
? ? ? wednesday: "Wednesday",
? ? ? thursday: "Thursday",
? ? ? friday: "Friday",
? ? },
? },
? "fr-FR": {
? ? weekdays: {
? ? ? monday: "Lundi",
? ? ? tuesday: "Mardi",
? ? ? wednesday: "Mercredi",
? ? ? thursday: "Jeudi",
? ? ? friday: "Vendredi",
? ? },
? },
? "de-DE": {
? ? weekdays: {
? ? ? monday: "Montag",
? ? ? tuesday: "Dienstag",
? ? ? wednesday: "Mittwoch",
? ? ? thursday: "Donnerstag",
? ? ? friday: "Freitag",
? ? },
? },
};
function getItemFromBoundLanguageMap(item) {
? return this[item];
}
// let weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];
const weekdaysKeyList = Object.keys(i18nMap["en-GB"].weekdays);
const weekdaysEnGB = weekdaysKeyList.map(
? getItemFromBoundLanguageMap,
? i18nMap["en-GB"].weekdays
);
const weekdaysFrFR = weekdaysKeyList.map(
? getItemFromBoundLanguageMap,
? i18nMap["fr-FR"].weekdays
);
const weekdaysDeDE = weekdaysKeyList.map(
? getItemFromBoundLanguageMap,
? i18nMap["de-DE"].weekdays
);
console.log("weekdaysKeyList :", weekdaysKeyList);
console.log("weekdaysEnGB :", weekdaysEnGB);
console.log("weekdaysFrFR :", weekdaysFrFR);
console.log("weekdaysDeDE :", weekdaysDeDE);
.as-console-wrapper { min-height: 100%!important; top: 0; }

TA貢獻1802條經驗 獲得超5個贊
您可以執行以下操作:
let arr = ["Mon", "Tue"]
let mapping = {
"Mon":"aaa",
"Tue":"sss"
}
newArr = arr.map((str) => {
return mapping[str];
});
console.log(newArr) //["aaa","sss"]
添加回答
舉報