javascript - 如何在 JavaScript 中创建和修改关联数组?

标签 javascript jquery javascript-objects associative-array

我正在尝试将一些代码从服务器端移动到客户端。我正在努力使用 Javascript。看来我需要使用对象与数组来实现。

我有一些带有循环遍历的数据属性的输入字段。

$(".selection:checked").each(function(){

    $selection_id=$(this).data('selection_id');
    $swatch_id=$(this).data('swatch_id');

});

首先,我想创建一个如下形式的数组:

$array[$selection_id]=$swatch_id;

array(100=>123,200=456,300=789)

其次,我想遍历一个元素列表并根据数组键换出一个值。

元素有键 100 和值 1000 那么:

$array[100]=1000;

新数组是array(100=>1000,200=456,300=789)

最后,我需要获取该数组并将其转换为以下形式的字符串:

"100:1000,200:456,300:789"

我是 Javascript 的新手,仍在努力了解对象。感谢您的帮助。

最佳答案

您最好创建一个对象来存储 $selection_id => $watch_id 映射。您可以使用以下语法实现它

const mapping = {};
mapping[$selection_id] = $watch_id;

那么这个 array(100=>123,200=456,300=789) 看起来像

mapping = {
   100: 123,
   200: 456,
   300: 789
}

值可以使用映射 [100] 访问,这将为您提供 123。 如果您想将其转换为您指定的字符串,请执行以下操作。

const mapString = Object.keys(mapping).reduce((acc, curr) =>
  `${acc}${curr}:${mapping[curr]},`,
"").slice(0, -1)

它会给你这个输出 "100:123,200:456,300:789"

更新

要生成 mapString,请使用以下内容。谢谢@Soc 的建议。

const mapString = Object.keys(mapping).map(key => `${key}:${mapping[key]}`).join(',');

关于javascript - 如何在 JavaScript 中创建和修改关联数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58110233/

相关文章:

javascript - 整个站点使用一个 Django Channels websocket 消费者?

javascript - 使用javascript用两个特殊字符拆分复杂的字符串

javascript - array.prototype.length 给我一个错误是什么

javascript - 将数据从 Web Worker 发送到站点上下文失败

javascript - `prop in localStorage` 与 `localStorage.getItem(' Prop ')!==null`

javascript - 访问对象内的深层嵌套数组

javascript - jQuery 弹出框未显示

javascript - 无法使用 Cheerio 从 <div> Node 蜘蛛获取信息

javascript - 如何从 C# 添加数据到动态添加的下拉列表

javascript - JavaScript 中有不同类型的数组吗?