Javascript将数组元素添加到动态命名索引中

Javascript Add Array Element to Dynamically Named Index

本文关键字:索引 动态 数组元素 添加 Javascript      更新时间:2023-09-26

给定

var input[[]];
$('some_selector').each(function() {
   var outer, inner; 
   outer=$(this).parent().attr('some_property');
   inner=$(this).attr('a_property');
   input[outer].push(inner);
});

push函数执行过程中遇到错误。是因为特定的input[outer]没有声明为数组吗?

此外,outer的值不一定是排序的。因此,在循环中,outer可以依次具有以下值:"property1"、"property2"、"property1","property3"、"properties 2">。。。

用PHP术语来说,是否有类似于的东西

foreach () {
    $input[$outer][]=$inner;
}

谢谢!

如果outer具有"property1"等值,则input不是数组。这是一个物体。与PHP不同,Javascript中没有关联数组。

尝试:

var input = {};

是的,在推送之前,你需要创建一个数组。你可以在一个"也许它存在,也许它不存在"的步骤中这样做:

input[outer] = input[outer] || [];

然后像以前一样推:

input[outer].push(inner);