Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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_For Loop - Fatal编程技术网

如何在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++)

我想在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++) {
    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);
 }