我正在尝试将一些代码从服务器端移动到客户端。我正在努力使用 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/