Javascript 将数组元素添加到动态命名索引
Javascript Add Array Element to Dynamically Named Index
给出
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"、"property2" ...
用 PHP 术语来说,是否有等价于:
foreach () {
$input[$outer][]=$inner;
}
谢谢!
如果 outer
具有 "property1" 等值,则 input
不是数组。它是一个对象。与 PHP 不同,Javascript.
中没有关联数组
尝试:
var input = {};
是的,您需要先创建 一个数组,然后再推送到它。您可以像这样 "maybe it exists, maybe it doesn't" 一步完成:
input[outer] = input[outer] || [];
然后像以前一样推送:
input[outer].push(inner);
给出
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"、"property2" ...
用 PHP 术语来说,是否有等价于:
foreach () {
$input[$outer][]=$inner;
}
谢谢!
如果 outer
具有 "property1" 等值,则 input
不是数组。它是一个对象。与 PHP 不同,Javascript.
尝试:
var input = {};
是的,您需要先创建 一个数组,然后再推送到它。您可以像这样 "maybe it exists, maybe it doesn't" 一步完成:
input[outer] = input[outer] || [];
然后像以前一样推送:
input[outer].push(inner);