Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript是否将对象数组重新格式化或映射到新对象数组?比如重新格式化它并为值提供新的键(名称)_Javascript_Arrays_Json_Object_Javascript Objects - Fatal编程技术网

Javascript是否将对象数组重新格式化或映射到新对象数组?比如重新格式化它并为值提供新的键(名称)

Javascript是否将对象数组重新格式化或映射到新对象数组?比如重新格式化它并为值提供新的键(名称),javascript,arrays,json,object,javascript-objects,Javascript,Arrays,Json,Object,Javascript Objects,我不熟悉数组和对象,所以我整天都在做这个任务,我有一个JSON文件或数组语言(JavaScript),我也在StackOverflow上搜索,但不能很好地理解它们: [ {“日期”:“1959:01”、“1:138.89”、“2:139.39”、“3:139.74”、“4:139.69”、“5:140.68”、“6:141.17}, {“日期”:“1959:07”、“1:141.7”、“2:141.9”、“3:141.01”、“4:140.47”、“5:140.38”、“6:139.95},

我不熟悉数组和对象,所以我整天都在做这个任务,我有一个JSON文件或数组语言(JavaScript),我也在StackOverflow上搜索,但不能很好地理解它们:

[
{“日期”:“1959:01”、“1:138.89”、“2:139.39”、“3:139.74”、“4:139.69”、“5:140.68”、“6:141.17},
{“日期”:“1959:07”、“1:141.7”、“2:141.9”、“3:141.01”、“4:140.47”、“5:140.38”、“6:139.95},
{“日期”:“1960:01”、“1:139.98”、“2:139.87”、“3:139.75”、“4:139.56”、“5:139.61”、“6:139.58},
{“日期”:“1960:07”、“1:140.18”、“2:141.31”、“3:141.18”、“4:140.92”、“5:140.86”、“6:140.69},
{“日期”:“1961:01”、“1:141.06”、“2:141.6”、“3:141.87”、“4:142.13”、“5:142.66”、“6:142.88},
{“日期”:“1961:07”、“1:142.92”、“2:143.49”、“3:143.78”、“4:144.14”、“5:144.76”、“6:145.2},
{“日期”:“1962:01”、“1:145.24”、“2:145.66”、“3:145.96”、“4:146.4”、“5:146.84”、“6:146.58},
{“日期”:“1962:07”、“1:146.46”、“2:146.57”、“3:146.3”、“4:146.71”、“5:147.29”、“6:147.82},
{“日期”:“1963:01”,“1:148.26”,“2:148.9”,“3:149.17”,“4:149.7”,“5:150.39”,“6:150.43},
{“日期”:“1963:07”、“1:151.34”、“2:151.78”、“3:151.98”、“4:152.55”、“5:153.65”、“6:153.29},
{“日期”:“1964:01”、“1:153.74”、“2:154.31”、“3:154.48”、“4:154.77”、“5:155.33”、“6:155.62},
{“日期”:“1964:07”、“1:156.8”、“2:157.82”、“3:158.75”、“4:159.24”、“5:159.96”、“6:160.3},
{“日期”:“1965:01”、“1:160.71”、“2:160.94”、“3:161.47”、“4:162.03”、“5:161.7”、“6:162.19},
{“日期”:“1965:07”、“1:163.05”、“2:163.68”、“3:164.85”、“4:165.97”、“5:166.71”、“6:167.85},
{“日期”:“1966:01”、“1:169.08”、“2:169.62”、“3:170.51”、“4:171.81”、“5:171.33”、“6:171.57},
{“日期”:“1966:07”、“1:170.31”、“2:170.81”、“3:171.97”、“4:171.16”、“5:171.38”、“6:172.03}
]
以下是您的答案:

const data=[
  { "date": "1959:01", "1": 138.89, "2": 139.39, "3": 139.74, "4": 139.69, "5": 140.68, "6": 141.17 },
  { "date": "1959:07", "1": 141.7, "2": 141.9, "3": 141.01, "4": 140.47, "5": 140.38, "6": 139.95 },
  { "date": "1960:01", "1": 139.98, "2": 139.87, "3": 139.75, "4": 139.56, "5": 139.61, "6": 139.58 },
  { "date": "1960:07", "1": 140.18, "2": 141.31, "3": 141.18, "4": 140.92, "5": 140.86, "6": 140.69 },
  { "date": "1961:01", "1": 141.06, "2": 141.6, "3": 141.87, "4": 142.13, "5": 142.66, "6": 142.88 },
  { "date": "1961:07", "1": 142.92, "2": 143.49, "3": 143.78, "4": 144.14, "5": 144.76, "6": 145.2 },
  { "date": "1962:01", "1": 145.24, "2": 145.66, "3": 145.96, "4": 146.4, "5": 146.84, "6": 146.58 },
  { "date": "1962:07", "1": 146.46, "2": 146.57, "3": 146.3, "4": 146.71, "5": 147.29, "6": 147.82 },
  { "date": "1963:01", "1": 148.26, "2": 148.9, "3": 149.17, "4": 149.7, "5": 150.39, "6": 150.43 },
  { "date": "1963:07", "1": 151.34, "2": 151.78, "3": 151.98, "4": 152.55, "5": 153.65, "6": 153.29 },
  { "date": "1964:01", "1": 153.74, "2": 154.31, "3": 154.48, "4": 154.77, "5": 155.33, "6": 155.62 },
  { "date": "1964:07", "1": 156.8, "2": 157.82, "3": 158.75, "4": 159.24, "5": 159.96, "6": 160.3 },
  { "date": "1965:01", "1": 160.71, "2": 160.94, "3": 161.47, "4": 162.03, "5": 161.7, "6": 162.19 },
  { "date": "1965:07", "1": 163.05, "2": 163.68, "3": 164.85, "4": 165.97, "5": 166.71, "6": 167.85 },
  { "date": "1966:01", "1": 169.08, "2": 169.62, "3": 170.51, "4": 171.81, "5": 171.33, "6": 171.57 },
  { "date": "1966:07", "1": 170.31, "2": 170.81, "3": 171.97, "4": 171.16, "5": 171.38, "6": 172.03 }
]

const formated={};

for(let obj of data){
  const formatDate=obj['date'].split(":")[0];
  formated[formatDate]={...obj};
  delete formated[formatDate]['date']
}

console.log(formated)
此处,格式化的变量
是一个如下所示的对象:

'1959': {
    '1': 141.7,
    '2': 141.9,
    '3': 141.01,
    '4': 140.47,
    '5': 140.38,
    '6': 139.95
  },
  '1960': {
    '1': 140.18,
    '2': 141.31,
    '3': 141.18,
    '4': 140.92,
    '5': 140.86,
    '6': 140.69
  },
  '1961': {
    '1': 142.92,
    '2': 143.49,
    '3': 143.78,
    '4': 144.14,
    '5': 144.76,
    '6': 145.2
  },
  '1962': {
    '1': 146.46,
    '2': 146.57,
    '3': 146.3,
    '4': 146.71,
    '5': 147.29,
    '6': 147.82
  },
  '1963': {
    '1': 151.34,
    '2': 151.78,
    '3': 151.98,
    '4': 152.55,
    '5': 153.65,
    '6': 153.29
  },
  '1964': {
    '1': 156.8,
    '2': 157.82,
    '3': 158.75,
    '4': 159.24,
    '5': 159.96,
    '6': 160.3
  },
  '1965': {
    '1': 163.05,
    '2': 163.68,
    '3': 164.85,
    '4': 165.97,
    '5': 166.71,
    '6': 167.85
  },
  '1966': {
    '1': 170.31,
    '2': 170.81,
    '3': 171.97,
    '4': 171.16,
    '5': 171.38,
    '6': 172.03
  }
}

这里没有足够的细节。在您的输出中,属性名称(“1”…“12”)是否来自输入中的日期?它们是输入中带有数字名称的属性吗?“价值”是如何计算的?此外,输入中是否会有重复的“日期”(同一年和同一个月?)值?好的,请与我一起关注第一个和第二个对象,因为其他对象的工作是相同的,就像当你转到1956:01时,你会发现每个月有六个月的收入(值)这个对象必须与一年中的另一半(1956:07)连接起来,以形成从1到12的月份或数字,而不是两个对象各有6个。是的,伙计,绝对漂亮的代码片段我只需要最后一步是将第一个对象与第二个对象连接起来,所以它是12。我只需要再连接一步每一个物体与下一个物体形成一个完整的12个月的年份,如1956:01和1956:07构成一个完整的年份