【问题标题】:Create mutidimentional Associative array in javascript在 javascript 中创建多重关联数组
【发布时间】:2015-02-14 14:20:49
【问题描述】:

我需要在 JavaScript 中创建一个多维数组

我的代码如下但得到控制台错误“Uncaught TypeError: Cannot set property 'time' of undefined”

 var timeLogDetails = {};
  $('.time_input').each(function(i, obj) {
       timeLogDetails[i]['time'] = $( this ).val();
       timeLogDetails[i]['timeLog'] =  $( this ).attr('timelog');
  });

【问题讨论】:

  • 你需要创建对象而不是这样的数组。

标签: javascript jquery arrays multidimensional-array


【解决方案1】:

你需要先为timeLogDetails创建一个数组,然后往里面推入数据。

例如:

var timeLogDetails = [ ];

$('.time_input').each(function(i, obj) {

    timeLogDetails.push( {  
        'time': $(this).val(),
        'timeLog': $(this).attr('timelog')
    } ); 

});

现在,您可以使用以下方式访问信息:

timeLogDetails[0]['time']timeLogDetails[0].time

【讨论】:

  • 但现在 je 缺少 i。他想为我认为的特定索引设置时间和时间日志。
  • @hamala94 不,他没有。 i 将始终是从 0 开始的数字索引。由于数组(或他的情况下的对象)一开始是空的,所以我在上面发布的代码会产生与他的结果相同的结果(如果有效的话)。
【解决方案2】:

您可以使用 each(如 BenM 演示的那样)或 $.fn.map。两者都会产生对象数组:

var timeLogDetails = $('.time_input').map(function() {
    return {
        time: this.value,
        timeLog: $(this).attr('timelog')
    };
}).get();

【讨论】:

    猜你喜欢
    • 2015-11-15
    • 2011-03-17
    • 2012-03-21
    • 2017-08-02
    • 2016-11-15
    • 1970-01-01
    • 2010-09-25
    相关资源
    最近更新 更多