js数组自定义属性名?

js数组中添加自定义属性为:
arr.age=18;
arr.name=Tomy;
如何在for循环html元素动态向Arr1数组添加元素
例如:我想添加一个input:name=sex
为什么不能是
Arr1.inputs[i].name=input[i].value;
也不能
inputName = input[i].name;
Arr.inputName=input[i].value; //这个是明显不对的,在循环中会被最后一个完全部覆盖

求教数组的属性不能是动态的吗?

阅读 8.9k
4 个回答

//你是要这种?

Arr1[inputs[i].name]=input[i].value

js,数组本身就是动态的,没有必要想java等用for循环去添加元素,直接push就可以了。
另外我感觉你对数组的理解上可能有问题,直接给数组添加属性,这个事在语法上事合法的,但是习惯上没有人会这么做。arr.age=18;这种写法,一看就是业余的。
一般来讲,大家都是这么用js数组的:
var arr =[];//声明空数组
arr.push({name:"Tomy",age:18});//向数组中添加一个包含姓名和年龄的对象

var abc 和 Arr1.abc 中的 abc 是两个没关系的 abc,如果要动态的话,就不能使用 . 了,需要使用 [xx]:

var abc = input.name;
Arr1[abc] = input.value; // 或者直接 Arr1[input.name] = input.value;

不过这种在 Js 中一般叫 对象 (Object),不叫数组(Array)

如果Arr1 本身就是数组,则直接

Arr1[i].name=input[i].value;

就可以了。

另外 只要不是undefined,null,都可以赋值,当然,number,boolean,string 赋值了也没啥用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题