部分javascript数组未发布到服务器

部分javascript数组未发布到服务器,javascript,jquery,Javascript,Jquery,我目前有一个javascript数组,如下所示: Array[ 0: "text1" 1: "text2" 2: "text3" app_name: "text4" ] 奇怪的是,当我将数组打印到控制台时,它只表示它包含3项数组[3]但显然它有4项 当我在ajax上发布此数据时,app\u name不会被传输到服务器。这是因为它是一个对象而不是一个数组吗?如果是这样,我将如何将其发布到服务器。我不一定需要数字索引张贴以及,只是有关联的项目将是最好的

我目前有一个javascript数组,如下所示:

Array[
     0: "text1"
     1: "text2"
     2: "text3"
     app_name: "text4"
   ]
奇怪的是,当我将数组打印到控制台时,它只表示它包含3项<代码>数组[3]但显然它有4项

当我在ajax上发布此数据时,
app\u name
不会被传输到服务器。这是因为它是一个对象而不是一个数组吗?如果是这样,我将如何将其发布到服务器。我不一定需要数字索引张贴以及,只是有关联的项目将是最好的

ajax代码:

$.ajax({
     url: path + "my/api/path",
     data: {"data": myarray}, 
     dataType: 'json',
     type: 'POST',
     success: function(res) {
        console.log(res);
     }
  });

编辑:我还应该提到我正在使用用于jquery的handsontable插件。这是we the
getData
函数从Spreadsheet返回数据的方法。

虽然JavaScript中的数组是对象,但这并不意味着将命名属性分配给数组是明智的,就像您使用
app\u name
所做的那样

数组长度始终只报告正确编号的索引元素(属性)的数量,而不报告其具有的任何命名属性

同样的问题也适用于JSON序列化:JSON序列化程序不会序列化数组的命名属性,因为JSON没有命名数组属性的概念

为了您的理智起见,我建议避免在数组上使用命名属性(虽然有时和有时它很有用,但您必须真正知道自己在做什么)。我可能会建议您重构代码:

var thing = {
    arr: [ 'text1', 'text2', 'text3' ],
    app_name: 'text4'
}    

虽然JavaScript中的数组是对象,但这并不意味着向数组分配命名属性是明智的,就像您使用
app\u name
所做的那样

数组长度始终只报告正确编号的索引元素(属性)的数量,而不报告其具有的任何命名属性

同样的问题也适用于JSON序列化:JSON序列化程序不会序列化数组的命名属性,因为JSON没有命名数组属性的概念

为了您的理智起见,我建议避免在数组上使用命名属性(虽然有时和有时它很有用,但您必须真正知道自己在做什么)。我可能会建议您重构代码:

var thing = {
    arr: [ 'text1', 'text2', 'text3' ],
    app_name: 'text4'
}    

虽然JavaScript中的数组是对象,但这并不意味着向数组分配命名属性是明智的,就像您使用
app\u name
所做的那样

数组长度始终只报告正确编号的索引元素(属性)的数量,而不报告其具有的任何命名属性

同样的问题也适用于JSON序列化:JSON序列化程序不会序列化数组的命名属性,因为JSON没有命名数组属性的概念

为了您的理智起见,我建议避免在数组上使用命名属性(虽然有时和有时它很有用,但您必须真正知道自己在做什么)。我可能会建议您重构代码:

var thing = {
    arr: [ 'text1', 'text2', 'text3' ],
    app_name: 'text4'
}    

虽然JavaScript中的数组是对象,但这并不意味着向数组分配命名属性是明智的,就像您使用
app\u name
所做的那样

数组长度始终只报告正确编号的索引元素(属性)的数量,而不报告其具有的任何命名属性

同样的问题也适用于JSON序列化:JSON序列化程序不会序列化数组的命名属性,因为JSON没有命名数组属性的概念

为了您的理智起见,我建议避免在数组上使用命名属性(虽然有时和有时它很有用,但您必须真正知道自己在做什么)。我可能会建议您重构代码:

var thing = {
    arr: [ 'text1', 'text2', 'text3' ],
    app_name: 'text4'
}    
使用JSON对象

var obj = {
    app_name: "text4",
    items: ["text1", "text2", "text3"]
};
使用JSON对象

var obj = {
    app_name: "text4",
    items: ["text1", "text2", "text3"]
};
使用JSON对象

var obj = {
    app_name: "text4",
    items: ["text1", "text2", "text3"]
};
使用JSON对象

var obj = {
    app_name: "text4",
    items: ["text1", "text2", "text3"]
};

数组计数从0索引开始,因此,显示的数组[3]是正确的。 要将app_数据发布到服务器,必须将app_数据分配到索引,然后重试,如下所示 3:应用程序数据 因为数组定义只对索引而不是字符串执行


希望这有帮助

数组计数从0索引开始,因此,显示的数组[3]是正确的。 要将app_数据发布到服务器,必须将app_数据分配到索引,然后重试,如下所示 3:应用程序数据 因为数组定义只对索引而不是字符串执行


希望这有帮助

数组计数从0索引开始,因此,显示的数组[3]是正确的。 要将app_数据发布到服务器,必须将app_数据分配到索引,然后重试,如下所示 3:应用程序数据 因为数组定义只对索引而不是字符串执行


希望这有帮助

数组计数从0索引开始,因此,显示的数组[3]是正确的。 要将app_数据发布到服务器,必须将app_数据分配到索引,然后重试,如下所示 3:应用程序数据 因为数组定义只对索引而不是字符串执行


希望这有帮助

数组只考虑具有数字和正索引的条目。长度属性将等于最大索引+1。如果您这样做:

var arr = [];
arr[20] = 'twenty';
您将看到
arr.length
将为21,前20个条目将为
undefined


我建议您使用一个对象来实现您的目的。

数组只考虑具有数字和正索引的条目。长度属性将等于最大索引+1。如果您这样做:

var arr = [];
arr[20] = 'twenty';
您将看到
arr.length
将为21,前20个条目将为
undefined


我建议您使用一个对象来实现您的目的。

数组只考虑具有数字和正索引的条目。长度属性将等于最大索引+1。如果您这样做:

var arr = [];
arr[20] = 'twenty';
您将看到
arr.length
将为21,前20个条目将为
undefined


我建议您使用一个对象来实现您的目的。

数组只考虑具有数字和正索引的条目。长度属性将等于最大索引+1。如果您这样做:

var arr = [];
arr[20] = 'twenty';
您将看到
arr.length
将为21,前20个条目将为
undefi