javascript - 使用 javascript/jquery 将值存储到循环中的数组

标签 javascript jquery multidimensional-array

我有一个日期和年份列表如下所示:

<ul>
    <li>Jan 2010</li>
    <li>Mar 2010</li>
    <li>Jan 2011</li>
    <li>Jan 2012</li>
    <li>Mar 2012</li>
</ul>

然后我使用 jquery 从元素和单独的月份和年份获取每个列出的值,如下面的代码:

$("ul").children("li").each(function(){
    var val = $(this).text();
    var month = val.split(" ")[0]; //get month Jan, Mar
    var year = val.split(" ")[1];  //get year 2010, 2011, 2012

    var arrDate = new Array();

    //do some code here to store the year and the month in array w/c is arrDate
});

所以这有点棘手,因为年份不会重复,而是将每个月都存储在同一年,如下图所示:

2010 => Jan
     => Mar
2011 => Jan
2012 => Jan
     => Mar

所以数组结构将类似于上面的内容,其中年份将是唯一的,并且具有相同年份的每个月都将存储到其引用的年份。

谢谢!

最佳答案

在这种情况下,您不需要经典数组,而是关联数组,它在 Javascript 中转换为标准对象。

var months = {};
$("ul").children("li").each(function(){
    var val = $(this).text().split(" ");
    if (val[1] in months) months[val[1]].push(val[0]);
    else months[val[1]] = [val[0]];
});

现在 months 是您的二维数组。

注意:我不认为从 DOM 内容中检索您需要的值是个好主意。为什么你必须这样做?

关于javascript - 使用 javascript/jquery 将值存储到循环中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10769132/

相关文章:

c++ - 初始化 C/C++ 多维数组时忽略大小

javascript - 未定义嵌套循环 (Javascript)

javascript - 未使用 JSONP API 中的信息创建对象

javascript - 如何使javascript中的排序函数表现得像mysql order by

javascript - ajax读取/获取变量有时无法使用codeigniter获取确切的变量

javascript - 加载选择元素时的 JQuery 事件处理程序

javascript - 如何使用 jquery 在浏览器中获取我的网站打开的选项卡数量?

c - 服务器验证凭据(套接字编程)

javascript - 使用 Javascript 激活 CSS3 动画

javascript - 将文本附加到 D3js 中绕原点旋转的 SVG `rect`