排序Javascript数组并获取数字差

排序Javascript数组并获取数字差,javascript,jquery,arrays,sorting,Javascript,Jquery,Arrays,Sorting,我有3个价格不同的Javascript变量。我需要把价格按从低到高的顺序排列。价格最低的项目将输出“最低”,价格较高的项目仅显示价格差异 例如: var apple = 2.99; var watermelon = 12.99; var orange = 4.99; 然后应输出: Apple: Lowest, Orange: $2 more, Watermelon: $10 More 为了实现这一点,我创建了一个由三个对象组成的数组 var item = new Array(); item.

我有3个价格不同的Javascript变量。我需要把价格按从低到高的顺序排列。价格最低的项目将输出“最低”,价格较高的项目仅显示价格差异

例如:

var apple = 2.99;
var watermelon = 12.99;
var orange = 4.99;
然后应输出:

Apple: Lowest, Orange: $2 more, Watermelon: $10 More
为了实现这一点,我创建了一个由三个对象组成的数组

var item = new Array();
item.push({apple:"2.99"});  
item.push({watermelon:"12.99"});    
item.push({orange:"4.99"});

现在我需要以某种方式对数组进行排序,并得到价格上的差异。如何实现这一点?

我不建议使用对象来关联名称和价格,因为要获得属性,必须使用类似于
Object.keys(obj)[0]
的东西,这很难看

相反,我建议将数据存储在成对的数组中,例如,将名称存储在第一个位置,将价格存储在第二个位置

然后,根据价格对数组进行排序,使用为每对生成一个字符串,最后连接字符串

[                                   // Data
  ['Apple', 2.99],
  ['Watermelon', 12.99],
  ['Orange', 4.99]
].sort(function(a,b) {              // Sort by price
  return a[1] - b[1];
}).map(function(pair, index, arr) { // Stringify each pair
  var diff = pair[1] - arr[0][1];
  return pair[0] + ': ' + (diff ? '$' + diff + ' more' : 'Lowest');
}).join(', ');                      // Join the strings

我不建议使用对象来关联名称和价格,因为要获得属性,必须使用类似于
Object.keys(obj)[0]
,这很难看

相反,我建议将数据存储在成对的数组中,例如,将名称存储在第一个位置,将价格存储在第二个位置

然后,根据价格对数组进行排序,使用为每对生成一个字符串,最后连接字符串

[                                   // Data
  ['Apple', 2.99],
  ['Watermelon', 12.99],
  ['Orange', 4.99]
].sort(function(a,b) {              // Sort by price
  return a[1] - b[1];
}).map(function(pair, index, arr) { // Stringify each pair
  var diff = pair[1] - arr[0][1];
  return pair[0] + ': ' + (diff ? '$' + diff + ' more' : 'Lowest');
}).join(', ');                      // Join the strings

我不建议使用对象来关联名称和价格,因为要获得属性,必须使用类似于
Object.keys(obj)[0]
,这很难看

相反,我建议将数据存储在成对的数组中,例如,将名称存储在第一个位置,将价格存储在第二个位置

然后,根据价格对数组进行排序,使用为每对生成一个字符串,最后连接字符串

[                                   // Data
  ['Apple', 2.99],
  ['Watermelon', 12.99],
  ['Orange', 4.99]
].sort(function(a,b) {              // Sort by price
  return a[1] - b[1];
}).map(function(pair, index, arr) { // Stringify each pair
  var diff = pair[1] - arr[0][1];
  return pair[0] + ': ' + (diff ? '$' + diff + ' more' : 'Lowest');
}).join(', ');                      // Join the strings

我不建议使用对象来关联名称和价格,因为要获得属性,必须使用类似于
Object.keys(obj)[0]
,这很难看

相反,我建议将数据存储在成对的数组中,例如,将名称存储在第一个位置,将价格存储在第二个位置

然后,根据价格对数组进行排序,使用为每对生成一个字符串,最后连接字符串

[                                   // Data
  ['Apple', 2.99],
  ['Watermelon', 12.99],
  ['Orange', 4.99]
].sort(function(a,b) {              // Sort by price
  return a[1] - b[1];
}).map(function(pair, index, arr) { // Stringify each pair
  var diff = pair[1] - arr[0][1];
  return pair[0] + ': ' + (diff ? '$' + diff + ' more' : 'Lowest');
}).join(', ');                      // Join the strings

您将需要清理代码,但这就是您如何实现希望实现的目标的方法

JSFiddel:

代码:

var苹果=2.99;
var=12.99;
var orange=4.99;
var myArray=[{“name”:“Oragne”,“value”:orange},
{“名称”:“西瓜”,“值”:西瓜},
{“名称”:“苹果”,“价值”:苹果}];
排序(函数(a,b){
返回a.value-b.value;
});
var lowstobject=myArray[0];
var lowestValue=lowestObject.value;
console.log(最低值);
var printStatement=“”;
对于(var i=0;i
您将需要清理代码,但这是您实现目标的方法

JSFiddel:

代码:

var苹果=2.99;
var=12.99;
var orange=4.99;
var myArray=[{“name”:“Oragne”,“value”:orange},
{“名称”:“西瓜”,“值”:西瓜},
{“名称”:“苹果”,“价值”:苹果}];
排序(函数(a,b){
返回a.value-b.value;
});
var lowstobject=myArray[0];
var lowestValue=lowestObject.value;
console.log(最低值);
var printStatement=“”;
对于(var i=0;i
您将需要清理代码,但这是您实现目标的方法

JSFiddel:

代码:

var苹果=2.99;
var=12.99;
var orange=4.99;
var myArray=[{“name”:“Oragne”,“value”:orange},
{“名称”:“西瓜”,“值”:西瓜},
{“名称”:“苹果”,“价值”:苹果}];
排序(函数(a,b){
返回a.value-b.value;
});
var lowstobject=myArray[0];
var lowestValue=lowestObject.value;
console.log(最低值);
var printStatement=“”;
对于(var i=0;i
您将需要清理代码,但这是您实现目标的方法

JSFiddel:

代码:

var苹果=2.99;
var=12.99;
var orange=4.99;
var myArray=[{“name”:“Oragne”,“value”:orange},
{“名称”:“西瓜”,“值”:西瓜},
{“名称”:“苹果”,“价值”:苹果}];
排序(函数(a,b){
返回a.value-b.value;
});
var lowstobject=myArray[0];
var lowestValue=lowestObject.value;
console.log(最低值);
var printStatement=“”;
对于(var i=0;i