如何在javascript中通过比较获得最小值
我想在JavaScript中获得组/唯一键的最小值如何在javascript中通过比较获得最小值,javascript,for-loop,Javascript,For Loop,我想在JavaScript中获得组/唯一键的最小值 var allPriceData = $('#allPriceData').val(); // alert (allPriceData); // Data 801||264||15:801||264||10:801||265||18:801||265||20:801||265||18 var arr = allPriceData.split(':'); for(var j=0;j<arr.length;j++)
var allPriceData = $('#allPriceData').val();
// alert (allPriceData);
// Data 801||264||15:801||264||10:801||265||18:801||265||20:801||265||18
var arr = allPriceData.split(':');
for(var j=0;j<arr.length;j++) {
alert(arr[j]);
var array = arr[j].split('||');
for(var k=0;k<array.length;k++) {
// Need Code Here for Required result:
}
}
var allPriceData=$('#allPriceData').val();
//警报(所有价格数据);
//数据801 | 264 | 15:801 | 264 | 10:801 | 265 | 18:801 | 265 | 20:801 | 265 | 18
var arr=allPriceData.split(“:”);
对于(var j=0;j我对您的数据结构做了一些假设:
var数据=[
[264, 15],
[264, 10],
[265, 18],
[265, 20],
[265, 22]
]
var tempDict=data.reduce(函数(u,元组){
var k=tuple[0],val=tuple[1]
如果(!.hasOwnProperty(k))\uk]=val
else k]=Math.min(k],val)
返回_
}, {})
var min=Object.keys(tempDict).reduce(函数{
_.push([parseInt(k),tempDict[k]])
返回_
},[])
更新:只需添加少量修改即可获得所需结果
var allKeys = ["264||15", "264||10", "265||18", "265||20", "265||22"];
allKeys.sort(function(i,j){
var n = parseInt(i.split("||")[1]);
var m = parseInt(j.split("||")[1]);
return n > m;
});
var result = [];
var obj = {};
allKeys.forEach(function(ele){
var n = ele.split("||")[0];
if(obj[n] === undefined){
obj[n] = true;
result.push(ele);
}
});
console.log(result);
//Prints -> [ '264||10', '265||18' ]
完成:
var-energy='264 | 0 | 10:265 | 0 | 0:266 | 265 | 1614.99:269 | 0 | 0:270 | 269 | 0';
警报(能源);
var small=[“264 | 0 | 15”、“265 | 0 | 0”、“268 | 265 | 20.99”];
警惕(小);
var min_数组=能量.split(':');
var总和=0;
for(var r=0;rshow一些具有实际数组结构的代码for(var j=0;j这不是数组-如果是,可以使用.reduce和一些code@JaromandaX,我已经更新了问题……谢谢。@JaromandaX如果需要其他详细信息,请检查并让我知道..谢谢。您可以根据我的指定条件更新您的答案吗。?谢谢此//打印->['264 | | 10','265 | | 18']
var energy = '264||0||10:265||0||0:266||265||1614.99:269||0||0:270||269||0';
alert(energy);
var small = ["264||0||15","265||0||0","268||265||20.99"];
alert(small);
var min_array = energy.split(':');
var sum = 0;
for(var r=0;r<min_array.length;r++) {
var min_values = min_array[r].split('||');
var n = 'false';
for(var j=0;j<small.length;j++) {
// alert(x[j]);
var temp = small[j].split('||');
if (temp[0] == min_values[0] && temp[1] == min_values[1])
{
sum = parseFloat(sum) + parseFloat(temp[2]);
n = 'true';
}
else if (temp[1] != 0 && temp[1] == min_values[1])
{
sum = parseFloat(sum) + parseFloat(temp[2]);
n = 'true';
}
}
if (n == 'false')
{
sum = parseFloat(sum) + parseFloat(min_values[2]);
}
alert('sum '+sum);
}