給定以下陣列,我將撰寫一個回呼函式,reduce 會回傳一個具有兩個鍵的物件——“JavaScript”和“python”。鍵應該等于將“JavaScript”或“python”作為其語言的開發人員的數量。最終的控制臺日志應為 JavaScript: 4, Python:3。
const developersArray = [
{ name: 'ralph', language: 'javascript' },
{ name: 'gretchen', language: 'javascript' },
{ name: 'alice', language: 'python' },
{ name: 'mohammed', language: 'javascript' },
{ name: 'pat', language: 'python' },
{ name: 'taylor', language: 'python' },
{ name: 'hideo', language: 'javascript' },
];
到目前為止,這是我想出的。我正在回顧一個舊的任務,并認為我在正確的軌道上,但不確定我是否走在正確的道路上:
const devLanguageCounts = developersArray.reduce(() => developersArray.language === 'javascript' && 'python' ? developersArray : 'javascript', 'python');
任何幫助是極大的贊賞
uj5u.com熱心網友回復:
使用Logical_nullish_assignmentreduce動態使用,如果語言不存在 0 或獲取其先前值,則初始值,然后增加它。object
const developers = [
{ name: "ralph", language: "javascript" },
{ name: "gretchen", language: "javascript" },
{ name: "alice", language: "python" },
{ name: "mohammed", language: "javascript" },
{ name: "pat", language: "python" },
{ name: "taylor", language: "python" },
{ name: "hideo", language: "javascript" },
];
const devLanguageCounts = developers.reduce((prev, { language }) => {
prev[language] ??= 0;
prev[language] ;
return prev;
}, {});
console.log(devLanguageCounts);
uj5u.com熱心網友回復:
使用簡單的方法與forEach檢查hasOwnProperty語言是否已經存在在res其他地方增量它用 1 初始它:
const developers = [
{ name: "ralph", language: "javascript" },
{ name: "gretchen", language: "javascript" },
{ name: "alice", language: "python" },
{ name: "mohammed", language: "javascript" },
{ name: "pat", language: "python" },
{ name: "taylor", language: "python" },
{ name: "hideo", language: "javascript" },
];
res = {};
developers.forEach(({ language }) => {
if (res.hasOwnProperty(language)) {
res[language] = 1;
} else {
res[language] = 1;
}
});
console.log(res)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/362449.html
標籤:javascript 功能 打回来
