我似乎無法使鍵等于傳入的名稱陣列的索引值的名稱。
我想做什么:
創建名稱和數字的鍵值以跟蹤我有多少重復名稱。
輸入輸出:
姓名 = [鮑勃、喬、吉爾、鮑勃、比爾、比爾]
輸出將是 {bob:2, joe:1, jill:1, bill:2}
我還沒有接觸到這部分代碼。目前只是想把鑰匙弄對。但它應該描繪出我正在嘗試做的事情。
我遇到的問題:
我似乎無法為我的集合中的每個名稱創建密鑰
我最初做了什么:
myset.add({names[i]:0})
我將其更改為一個名為的變數,該變數keyname正在我的 forloop 下分配。
這沒有任何改變。
function solution(names) {
const myset = new Set();
for(let i=0; i<names.length; i ){
let keyname = names[i];
if(myset.has(names[i])){
console.log("already includes");
}
else(
myset.add({
keyname:0
})
)
}
console.log(myset);
}
安慰:
Set(5) {
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 },
{ keyname: 0 }
}
uj5u.com熱心網友回復:
Set只是獨特價值的集合。如果您要添加一個物件,則它不會與任何其他物件相等,除非兩者在參考上不相同。
Set 物件是值的集合。您可以按插入順序遍歷集合的元素。Set 中的一個值只能出現一次;它在 Set 的系列中是獨一無二的。
如果您只需要計算字串的出現次數,那么您可以使用普通物件或 Map 來執行此操作:
function solution(names) {
const dict = {};
for (let i = 0; i < names.length; i) {
if (!dict[names[i]]) dict[names[i]] = 1;
else dict[names[i]];
}
console.log(dict);
}
solution(["bob", "joe", "jill", "bob"]);
function solution(names) {
const map = new Map();
names.forEach((name) =>
!map.has(name) ? map.set(name, 1) : map.set(name, map.get(name) 1)
);
console.log(map);
}
solution(["bob", "joe", "jill", "bob"]);
uj5u.com熱心網友回復:
嘗試在 Javascript 中使用物件。它可以存盤鍵/值對。
function solution(names) {
// javascript object
const values = {};
for(let i = 0; i < names.length; i ){
if(values[names[i]]){
values[names[i]] = 1;
}else{
values[names[i]] = 1;
}
}
console.log(values);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/388289.html
標籤:javascript for循环 放 核心价值
