从数组中分配键名
assigning a key name from an array
我似乎无法使键等于传入的名称数组的索引值的名称。
我想做什么:
创建名称和数字的键值以跟踪我有多少重复名称。
input/output:
姓名 = [鲍勃、乔、吉尔、鲍勃、比尔、比尔]
输出将是 {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 }
}
Set
只是唯一值的集合。如果您要添加一个对象,那么它将不等于任何其他对象,除非两者在引用上不同。
Set objects are collections of values. You can iterate through the
elements of a set in insertion order. A value in the Set may only
occur once; it is unique in the Set's collection.
如果您只需要计算字符串的出现次数,那么您可以使用普通对象或 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"]);
尝试使用Javascript中的对象。它可以存储 key/value 对。
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);
}
我似乎无法使键等于传入的名称数组的索引值的名称。
我想做什么:
创建名称和数字的键值以跟踪我有多少重复名称。
input/output:
姓名 = [鲍勃、乔、吉尔、鲍勃、比尔、比尔]
输出将是 {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 }
}
Set
只是唯一值的集合。如果您要添加一个对象,那么它将不等于任何其他对象,除非两者在引用上不同。
Set objects are collections of values. You can iterate through the elements of a set in insertion order. A value in the Set may only occur once; it is unique in the Set's collection.
如果您只需要计算字符串的出现次数,那么您可以使用普通对象或 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"]);
尝试使用Javascript中的对象。它可以存储 key/value 对。
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);
}