排序Javascript数组并获取数字差
我有3个价格不同的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.
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