Javascript 从对象创建新的多维数组

Javascript 从对象创建新的多维数组,javascript,arrays,object,Javascript,Arrays,Object,Iam正在从对象创建新数组。 我用for循环来实现这一点 for (var key in data["record"]) { if (data["record"].hasOwnProperty(key)) { if (data["record"][key]["acquisition.method"] != undefined ) { newObject[key] = [];

Iam正在从对象创建新数组。 我用for循环来实现这一点

for (var key in data["record"])
    {
        if (data["record"].hasOwnProperty(key))
        {   

            if (data["record"][key]["acquisition.method"] != undefined ) {
                newObject[key] = [];

                newObject[key]["acquisition.method"] = data["record"][key]["acquisition.method"][0];

                if (data["record"][key]["production.date.end"] != undefined ) { 
                    newObject[key]["production.date"] = data["record"][key]["production.date.end"][0];


                }
            }
        }
    }
该阵列在console.log中如下所示:

0: Array[0]
1: Array[0]
2: Array[0]
3: Array[0]
4: Array[0]
5: Array[0]
我想这样做:

record: Array[0]
record: Array[0]
record: Array[0]
record: Array[0]
record: Array[0]
   newObject = [
        "0": [
                   "something": "value",
                   "somethingelse": "value"
            ],
        "1": [
                   "something": "value",
                   "somethingelse": "value"
            ],
        "2": [
                   "something": "value",
                   "somethingelse": "value"
            ],
        "3": [
                   "something": "value",
                   "somethingelse": "value"
            ]
    ]
我该怎么做

添加了JSON

newObject = [
    "record": [
               "something": "value",
               "somethingelse": "value"
        ],
    "record": [
               "something": "value",
               "somethingelse": "value"
        ],
    "record": [
               "something": "value",
               "somethingelse": "value"
        ],
    "record": [
               "something": "value",
               "somethingelse": "value"
        ]
]
我唯一能做的就是这样:

record: Array[0]
record: Array[0]
record: Array[0]
record: Array[0]
record: Array[0]
   newObject = [
        "0": [
                   "something": "value",
                   "somethingelse": "value"
            ],
        "1": [
                   "something": "value",
                   "somethingelse": "value"
            ],
        "2": [
                   "something": "value",
                   "somethingelse": "value"
            ],
        "3": [
                   "something": "value",
                   "somethingelse": "value"
            ]
    ]
我尝试过类似的方法,但我知道push仅适用于阵列:

var newObject = {};
    var records ={};
    records["record"] = {};



    for (var key in data["record"])
    {
        if (data["record"].hasOwnProperty(key))
        {   

            if (data["record"][key]["acquisition.method"] != undefined ) {

                records["record"]["acquisition.method"] = data["record"][key]["acquisition.method"][0];

                if (data["record"][key]["production.date.end"] != undefined ) { 

                    records["record"]["production.date"] = data["record"][key]["production.date.end"][0];
                    newObject.push(records);
                }
            }
        }
    }
我现在尝试的是:

var records =[];

var newObject1 = {};
var newObject2= {};



for (var key in data["record"])
{
    if (data["record"].hasOwnProperty(key))
    {   

        if (data["record"][key]["acquisition.method"] != undefined ) {

            newObject2["acquisition.method"] = data["record"][key]["acquisition.method"][0];

            if (data["record"][key]["production.date.end"] != undefined ) { 

                newObject2["production.date"] = data["record"][key]["production.date.end"][0];
                newObject1["record"] = newObject2;
            }
        }
    }
    records.push(newObject1);
}

如果我正确地理解了您的代码(我想我是:),那么您要做的就是使其能够使用字符串(键)访问数组中的每个记录。这是通过使用JSON实现的。即使使用JSON,您也应该能够通过索引(您看到的整数键)访问数组中的元素


更新 想象一下,您正试图用一个键访问数组中的一组对象。问题在于,根据定义,键引用单个值。因此,不能对多个对象使用同一个键。但是,您可以创建一个键“record”引用的数组,该数组将返回所有这些内部键值对

更新2 想象一下:假设您使用的是原始数组(在最初发布的代码中生成的数组)。现在假设您将该数组设置为名为
var rec
的变量的值。在控制台中查看变量
rec
的值时,您将看到您在原始帖子中列出的确切输出(“0:Array[0],1:Array[1]…”)。退一步,我们知道变量
rec
引用(即,它是一个包含)所有这些数组(应该是这样的)的数组。现在,您要做的是:创建一个新对象,
obj1
,给它一个名为
record
的属性,并将该属性的值设置为变量
rec
。这意味着您有一个对象,
obj1
,可以通过
obj[“记录”]
访问您的数据

请注意,这是一个概念性的解决方案,而不是完整的解决方案



如果你有任何问题,请告诉我。祝你好运!:)

数组总是以整数作为键。而且关键点必须是唯一的,所以即使您使用了对象,您的预期结果对我来说也是不可能的。你能用JSON来指定你到底想要什么吗?我应该如何建立我的JSON文件?这是无效的。没有数组键,对象也不能有重复键。是的,你是对的:)我应该如何构建我的JSON文件,使新的JSON对象与我给出的示例相同?JSON没有帮助。OP正在处理简单的JS对象。如果我看到他试图用JSON做什么,我想我对他的要求有了更好的理解。我想感谢你对我的帮助。我有点急于解决这个问题。我更新了我的问题,并试图用您的信息解决问题,但仍然没有成功:(谢谢您的帮助。我试图按照您的提示并试图找到解决方案。但我仍然不在那里。您可以看到我在回答中尝试了什么。最后一段代码。