首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript:在ajax中将多维数组转换为对象

Javascript:在ajax中将多维数组转换为对象
EN

Stack Overflow用户
提问于 2017-07-08 12:49:20
回答 3查看 447关注 0票数 0

我试图使用ajax将javascript数组发送到php --他就是我所做的

代码语言:javascript
复制
var d = $("#fromDate").val();
var arr = [];
for(var x=0; x<count_select; x++){
       var myArray = new Array();
       myArray['val'] = $("select").eq(x).val();
       myArray['type'] = $("select").eq(x).attr('type');
       myArray['id'] = $("select").eq(x).attr('id');
       arr.push(myArray);
       myArray = new Array();
}

数组包含多维数组中我想要的元素。

但是,当我像这样将它发送到php页面时:(数组尚未转换,这里是我希望将其转换为json的地方)

代码语言:javascript
复制
$.ajax({
     type: "POST",
     url: "URL_PATH",
     data: {"arrar":arr,"date":d},
     dataType: "json",
        success: function(data) {
            alert(data);
        }
});

在“网络”选项卡中我找到

代码语言:javascript
复制
date    "2017-07-08"

找不到数组,所以我如何将这个多维数组转换为一个对象,以便我可以使用php处理它

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-08 13:05:57

可以使用map()简化此操作,并为每个项使用一个对象:

代码语言:javascript
复制
var arr = $('select').map(function() {
  return {
    val:  this.value,
    id:   this.id,
    type: $(this).attr('type')
  }
}).get();
票数 1
EN

Stack Overflow用户

发布于 2017-07-08 13:00:25

var myArray = {}是对象,不是数组,.Because数组在js中没有键值对。

代码语言:javascript
复制
var arr=[];
for(var x=0; x<10; x++){
       var myArray = {};//try with object not a array
       myArray['val'] = 10;
       myArray['type'] = 11;
       myArray['id'] = 12;
       arr.push(myArray);
}

console.log(arr)

票数 1
EN

Stack Overflow用户

发布于 2017-07-08 12:58:51

代码语言:javascript
复制
var array = new Array()
array["foo"] = "bar";

console.log(JSON.stringify(array))
// -> []

哎呀?

这里的问题是,当数组在post请求中发送时,它不会被正确地转换为文本。JS中的数组只期望数字作为索引,在JS中没有关联数组。关联数组的类比是对象。其中有一个简单的键:值存储。

你真正想要的是一个object

代码语言:javascript
复制
var obj = {};
obj["foo"] = "bar";

console.log(JSON.stringify(obj))
// -> { "foo": "bar" }

在Javascript中,所有东西都是一个对象,所以您可以这样做:

代码语言:javascript
复制
var n = 1;
n.name = "number with property";

即使这没有任何意义,你也不会犯错误;)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44986399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档