js中二维数组键名不知道怎么定义?

dnpao 2015-04-29 03:01:55

var array=new Array(),inputN,inputV;
$('dl').each(function(i){
var othis=$(this),name=othis.attr('data-name');
array[name]=new Array();
othis.find('.each-text').each(function(index,element){
inputN=$(element).attr('name');
inputV=$(element).val();
array[name][inputN]=inputV;
})
})


为什么这上面这段代码不可以,js中数组键名不能修改吗?
而下面的我用 i,index 就可以是一个数组,

问题:怎么样才能使上面那段有效,应该怎么改


var array=new Array(),inputN,inputV;
$('dl').each(function(i){
var othis=$(this),name=othis.attr('data-name');
array[i]=new Array();
othis.find('.each-text').each(function(index,element){
inputN=$(element).attr('name');
inputV=$(element).val();
array[i][index]=inputV;
})
})
...全文
419 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dnpao 2015-04-29
  • 打赏
  • 举报
回复
我就是熟悉php这块的数组,搞了半天没想通js这块的数组怎么就不行,听大神解释才明白了,谢谢!
天际的海浪 2015-04-29
  • 打赏
  • 举报
回复
代码没有太大的问题.只不过你把数组当成对象来用了.(js中数组和对象是不同的,这和php是不一样的) 这样在遍历的时候就要用对象的遍历方式,不能用数组的遍历方式 for (var n in array) { array[n]//代码 } 不过最好还是改用真正的对象Object

var array=new Object(),inputN,inputV;
$('dl').each(function(i){
    var othis=$(this),name=othis.attr('data-name');
    array[name]=new Object();
    othis.find('.each-text').each(function(index,element){
        inputN=$(element).attr('name');
        inputV=$(element).val();
        array[name][inputN]=inputV;
    })
})

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧