从数组中分配一个键名

Posted

技术标签:

【中文标题】从数组中分配一个键名【英文标题】:assigning a key name from an array 【发布时间】:2022-01-22 15:07:28 【问题描述】:

我似乎无法使键等于传入的名称数组的索引值的名称。

我想做什么:

创建名称和数字的键值以跟踪我有多少重复名称。

输入/输出:

names = [bob, joe, jill, bob, bill, bill]

输出将是 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 

【问题讨论】:

什么是输入数组,你期望什么输出?请添加问题本身 如果我的输入是 [bob,joe,jill, bob] 我的输出将是 bob:2, jill:1,joe:1。但我还没有到那部分。我现在只是想用正确的名称创建集合 请在问题本身中添加您期望的输入和输出...这对其他人来说也更容易理解... 【参考方案1】:

Set 只是唯一值的集合。如果您要添加一个对象,那么它将不等于任何其他对象,除非两者在引用上不同。

Set 对象是值的集合。您可以遍历 按插入顺序排列的集合元素。 Set 中的一个值只能 发生一次;它在 Set 的集合中是独一无二的。

如果您只需要计算字符串的出现次数,那么您可以使用普通对象或 Map as:

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"]);

【讨论】:

【参考方案2】:

尝试在 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);

【讨论】:

以上是关于从数组中分配一个键名的主要内容,如果未能解决你的问题,请参考以下文章

使用 TSQL OPENJSON 如何从具有动态键名的 JSON 数组中提取值

如何从laravel中的数组中获取键名

array_diff_key — 使用键名比较计算数组的差集

array_diff_key — 使用键名比较计算数组的差集

PHP 根据配置转换数组中的键名 方便给前端的时候改键名

php 二维数组中取某个唯一的键值为键名。(通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值。)