如何创建带键名的JS对象存储多选框值并实现键名调用?
解决方案:使用JavaScript对象存储命名键值对
嘿,我完全懂你的需求——你需要的不是普通数组,而是一个JavaScript对象(也叫关联数组),它能帮你用命名键来关联对应的字符串值,正好满足你array['parameter1'] = '1,2,3,4'这种存储方式,之后也能直接通过键名调用值。
为什么普通数组不行?
你之前用的var array = []是普通索引数组,它只能通过数字下标(比如array[0]、array[1])来存取数据,没法用'parameter1'这种自定义命名的键,所以满足不了你的需求。
具体实现步骤
初始化一个空对象(而不是空数组):
var dataObj = {};收集并拼接值,赋值给指定键
针对你要收集选中checkbox值的场景,我们可以用jQuery的map()方法更高效地收集值,再拼成逗号分隔的字符串:// 收集所有选中的checkbox的值,转成逗号分隔的字符串 var checkedValues = $("input[name='checkbox']:checked") .map(function() { return $(this).val(); // 取出每个选中项的值 }) .get() // 把jQuery对象转换成普通数组 .join(','); // 把数组元素用逗号拼接成字符串 // 把拼接好的字符串赋值给对象的'parameter1'键 dataObj['parameter1'] = checkedValues;手动设置其他键值对
如果是像parameter2这种固定值,直接赋值就行:dataObj['parameter2'] = "A,B,C,D";调用存储的值
之后你就可以通过键名直接获取对应的值了:alert(dataObj['parameter2']); // 会弹出 "A,B,C,D" alert(dataObj['parameter1']); // 会弹出选中checkbox的值拼接成的字符串
小提示
- 对象的键名也可以用点语法调用,比如
dataObj.parameter1和dataObj['parameter1']是完全等价的。不过如果键名包含特殊字符(比如空格、连字符),就必须用方括号语法。 - 如果之后需要添加更多键值对,直接用
dataObj['新键名'] = '对应值'的方式就行,非常灵活。
内容的提问来源于stack exchange,提问作者Trombone0904
相关产品推荐
相关产品推荐

