Javascript 将复选框值映射到空数组

Javascript 将复选框值映射到空数组,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我将一系列数组绑定到复选框 以下是HTML: <input type="checkbox" value="value1">Value 1 <input type="checkbox" value="value2">Value 2 <input type="checkbox" value="value3">Value 3 我想根据选中的复选框创建一个新的数组,基本上创建一个数组数组。为此,我尝试了以下代码,但不起作用: var newArray = []; $

我将一系列数组绑定到复选框

以下是HTML:

<input type="checkbox" value="value1">Value 1
<input type="checkbox" value="value2">Value 2
<input type="checkbox" value="value3">Value 3
我想根据选中的复选框创建一个新的数组,基本上创建一个数组数组。为此,我尝试了以下代码,但不起作用:

var newArray = [];
$('input[type=checkbox]:checked').map(function(){
    newArray.push($(this).val());
});
我可以按如下方式硬编码newArray:

var value1 = ['item1', 'item2', 'item3'];
var value2 = ['itemA', 'itemB', 'itemC'];
var value3 = ['item!', 'item@', 'item#'];
var newArray = [value1, value2, value3];
var newArray = [itemC, item!, item1]
填充newArray之后,我想循环newArray中包含的数组的值,以选择随机索引并将它们推入randArray。如果我按如下方式硬编码newArray,则此部分有效:

var value1 = ['item1', 'item2', 'item3'];
var value2 = ['itemA', 'itemB', 'itemC'];
var value3 = ['item!', 'item@', 'item#'];
var newArray = [value1, value2, value3];
var newArray = [itemC, item!, item1]
但是,如果我尝试将复选框值映射到newArray,它将不起作用。填充完newArray后,我希望确保newArray中每个子集中至少有一项包含在randArray中。我目前遇到的困难是根据检查的内容使用子集填充新数组

我尝试完成的一个示例与

中的类似。此语法不会将复选框值设置为名为value1的js变量的值:

看这把小提琴:


未选中复选框时,您希望newArray中有什么内容?未选中复选框时,它应该是一个空数组。JavaScript无法使用包含第一个变量名称的另一个变量访问变量的值。这个概念在PHP中称为变量,但JS没有这个特性。您应该放弃使用名为value1、value2和value3的变量,而是使用对象作为关联数组,然后根据复选框值进行查找。例如:var值={'value1':['item1',…],'value2':['itemA',…],'value3':['item!',…]};每当你有两个变量命名为something1和something2时,你可能做错了!我认为这给了我正确的方向。谢谢你,Nate。这个解决方案唯一的问题是,我想确保在循环newArray时,每个子集中至少有一个值包含在输出中。如果我要求的输出长度为3个字符,则输出可能都属于同一子集,而不是从每个选中的复选框中给我一个随机值。@gjanden,这与您提出的问题无关。也许您应该更新问题并添加示例输出。我不知道你还想要什么;