类似于php的javascript中的数组

类似于php的javascript中的数组,javascript,Javascript,大家好,我正在尝试用javascript制作一个数组,就像用php制作一样。在php中,我可以创建这样的数组,然后插入我喜欢的任何索引 $p = array(); $p["abcd"] = "James"; 现在我想要js中的这个功能。可以用js来做吗 我做过类似的事情,但这让我犯了一个错误 $.each( $('table[data-step-id=' + step_id +'] input[name^=actions]') , function(key , value){ debu

大家好,我正在尝试用javascript制作一个数组,就像用php制作一样。在php中,我可以创建这样的数组,然后插入我喜欢的任何索引

$p = array();
$p["abcd"] = "James";
现在我想要js中的这个功能。可以用js来做吗

我做过类似的事情,但这让我犯了一个错误

$.each( $('table[data-step-id=' + step_id +'] input[name^=actions]') , function(key , value){
    debugger;
    steps_actions_dates_assign[key]["action"].push(value.val());
});
这就是错误所在
未捕获类型错误:无法设置未定义的属性“action”

我的问题不是重复的

var steps_actions_dates_assign = new Array();

$.each($('.steps-table') , function (key , value){
    debugger;
    step_id = value.children[0].value;
    steps_actions_dates_assign[key]["action"] = new Array();
    $.each( $('table[data-step-id=' + step_id +'] input[name^=actions]') , function(key , value){
        debugger;
        steps_actions_dates_assign[key]["action"].push(value.val());
    });
});
我并没有试图在javascript中访问php数组,但我正在尝试在javascript中创建一个类似php的数组(这样我们就不必担心索引了,就像我可以添加任何我想要的索引一样)

这是全部代码

var steps_actions_dates_assign = new Array();

$.each($('.steps-table') , function (key , value){
    debugger;
    step_id = value.children[0].value;
    steps_actions_dates_assign[key]["action"] = new Array();
    $.each( $('table[data-step-id=' + step_id +'] input[name^=actions]') , function(key , value){
        debugger;
        steps_actions_dates_assign[key]["action"].push(value.val());
    });
});

JavaScript数组是为数字索引和保存有序数据而设计的

使用对象存储具有任意名称的属性

var p = {};
p["abcd"] = "James";
在JS中,数组是一种对象,因此可以在其上存储任意属性,但当您尝试迭代数组或将其传递给函数(如
JSON.stringify
)时,会遇到问题


如果您正在使用ES6,那么这是另一种选择。

否决我的问题的人能否解释为什么这个问题被否决了???@J Doe,这个基本的问题您可以从书中获得,先尝试自己学习,然后询问刚刚看到您的编辑,这是一个全新的问题。你认为
steps\u actions\u dates\u assign[key]
是一个对象:它不是。使用您的调试器找出它是什么。应该关闭,因为这是一个问题“为什么我的代码不工作…”哼,我忘记了地图。根据他们的说法,他们会跟踪插入顺序,因此在某些情况下,他们可能是一个替代品。@JDoe-这几乎是一个全新的问题,在当前状态下,无论如何都无法回答。您没有告诉我们什么是
steps\u actions\u dates\u assign
,或者为什么希望定义
steps\u actions\u dates\u assign[key]
。@JDoe-错误消息说
steps\u actions\u dates\u assign[key]
未定义。由于您从未定义过它(
steps\u actions\u dates\u assign
是一个空数组),这是意料之中的。定义它