Javascript 从对象创建新的多维数组
Iam正在从对象创建新数组。 我用for循环来实现这一点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] = [];
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做什么,我想我对他的要求有了更好的理解。我想感谢你对我的帮助。我有点急于解决这个问题。我更新了我的问题,并试图用您的信息解决问题,但仍然没有成功:(谢谢您的帮助。我试图按照您的提示并试图找到解决方案。但我仍然不在那里。您可以看到我在回答中尝试了什么。最后一段代码。