[英]Push values onto an associative array
我有为导师制的学生创建的以下代码,我想知道是否有人可以想到一种更简单的方法或已经存在的方法? 我也有兴趣学习如何在javascript中创建插件,但忘记了如何/无法在Google上找到它。
无论如何,这是代码...
window.addEventListener('load', function()
{
for(var i = 0; i < document.forms[0].length; i++)
{
document.forms[0].elements[i].checked = false;
}
}, false);
function formHandler()
{
valArray = new Array();
toppArray = new Array();
var theForm = document.forms[0];
for(var i = 0; i < theForm.length; i++)
{
theValue = theForm.elements[i].value;
if(theForm.elements[i].checked == true)
{
if(theForm.elements[i].type == 'checkbox' && theForm.elements[i].name == 'myChBx')
{
appendArr(toppArray, theForm.elements[i].value);
appendArr(valArray, toppArray, 'topping');
}else
{
appendArr(valArray, theValue);
}
}
}
}
function appendArr(array, value, keyVal = '')
{
if(keyVal != '')
{
array[keyVal] = value;
}else
array[array.length] = value;
}
好的,现在简要说明一下此代码的作用。 在PHP中,我知道您可以使用类似以下的方法将值附加到数组上
$array[] = $value;
但是我读过几个地方,您必须如何使用对象才能在javascript中创建关联数组。 在某种程度上,我想我已经做到了,但是我设法使用了数组对象。
这样做的目的是从简单的单选和复选框形式(例如此形式)中获取值。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="./appendArr.js"></script>
</head>
<body>
<form action="" method="post">
Radio 1:<input type="radio" name="myRdo" id="rdo" value="radio 1" onclick="formHandler();" />
Radio 2:<input type="radio" name="myRdo" id="rdo" value="radio 2" onclick="formHandler();" />
Radio 3:<input type="radio" name="myRdo" id="rdo" value="radio 3" onclick="formHandler();" />
<br />
Checkbox 1:<input type="checkbox" name="myChBx" id="myChBx" value="Checkbox 1" onclick="formHandler();" />
Checkbox 2:<input type="checkbox" name="myChBx" id="myChbx" value="Checkbox 2" onclick="formHandler();" />
Checkbox 3:<input type="checkbox" name="myChBx" id="myChbx" value="Checkbox 3" onclick="formHandler();" />
<br />
<input type="submit" name="submit" id="button" " value="Button" />
</form>
</body>
</html>
并将它们存储在一个数组中,该数组的值之一是关联数组,称为toppings; 因此数组中的某些值将是单个变量,而其他值将是单个变量的集合。
无论如何...我可能只是花了一个小时就花了一点时间,但是我来这里学习是,所以请不要拖拉。 谢谢
JavaScript没有关联数组,它具有作为索引列表的“数组”,并且具有作为key:value容器的“对象”。 这似乎也与您要问的内容无关,所以……您需要回答的实际问题是什么? “如何在JavaScript中$ arr [] = $ val”? 如果是这样,则为push(),如下所示:
["a","b","c"].push("d") // result: ["a","b","c","d"]
如果这不是您的问题,请编辑您的原始帖子,因为尚不清楚您真正想知道什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.