Javascript数组和对象比较

Aya*_*ant 0 javascript arrays loops object

我试图存储一年的最高和最低温度.

所以我有一个数组和这样的对象.

var Months =['January','February','March','April','May','June','July','August','September','October','November','December'];  

result[0] = {January: 26.2, February: 25.9, March: 25.7, April: 23.4, May: 19.3, June: 15.9, July: 15.4, August: 16, September: 21.3, October: 24.8, November: 26.6, December: 26.6,Type: "Min"}

result[1] = {January: 36.3, February: 35.9, March: 36, April: 36.7, May: 34.2, June: 31.4, July: 32, August: 34, September: 37.8, October: 39.5, November: 39.8, December: 37.8,Type: "Max"}.
Run Code Online (Sandbox Code Playgroud)

这是我拥有的数据,现在我想要两个不同的数组,以正确的顺序存储数据.(从1月到12月)

例如:

var min = [26.2,25.9,25.7,23.4,19.3,15.9,15.4,16,21.3,24.8,26.6,26.6]
var max = [36.3,35.9,36,36.7,34.2,31.4,32,34,37.8,39.5,39.8,37.8]
Run Code Online (Sandbox Code Playgroud)

如何从对象中提取数据并确保订单与"月"相同?另外,我需要在新阵列中删除Min/Max的"Type".

cнŝ*_*ŝdk 5

您只需使用.map()方法映射result对象中的相关月份值,并将它们分配给您minmax变量.

这是你的代码应该如何:

var [min, max] = result.map(r => Months.map(m => {
  return r[m]
}));
Run Code Online (Sandbox Code Playgroud)

演示:

var Months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

var result = [];


result[0] = {January: 26.2, February: 25.9, March: 25.7, April: 23.4, May: 19.3, June: 15.9, July: 15.4, August: 16, September: 21.3, October: 24.8, November: 26.6, December: 26.6,Type: "Min"};

result[1] = {January: 36.3, February: 35.9, March: 36, April: 36.7, May: 34.2, June: 31.4, July: 32, August: 34, September: 37.8, October: 39.5, November: 39.8, December: 37.8,Type: "Max"};

var [min, max] = result.map(r => Months.map(m => {
  return r[m]
}));

console.log(min);
console.log(max);
Run Code Online (Sandbox Code Playgroud)