在javascript中找到最小值?

时间:2013-10-21 08:47:06

标签: javascript

我想在JS中打印最小变量'name'。目前它打印最小值。我更想要变量名。例如: - 在当前代码中,它为我4,但我想要c。我怎么能这样做?

<script>
function myFunction()
{
var a = 5;
var b =10;
var c = 4;
document.getElementById("demo").innerHTML=Math.min(a,b,c);
}
</script>

5 个答案:

答案 0 :(得分:1)

Working DEMO

这应该可以解决问题:

//Push values to object
var age = {};
age.a = 5;
age.b = 10;
age.c = 4;

var min = Infinity, name;

// Loop through object to get min value and then find relevant name
for(var x in age) {
    if( age[x] < min) {
        min = age[x];
        name = x;
    } 
}

console.log ( 'property name is ' + name + ' and value is ' + min );

答案 1 :(得分:0)

将值存储在对象数组中。每个对象都包含namevalue属性。然后只需迭代值并存储最低值。

var values = [
    {
       "name": "a",
       "value": 5
},
    {"name":"b",
      "value":10
    },
    {
        "name":"c",
        "value":4
    }
];

function min(arr){
    var minValue = {};
    for(var x = 0; x < arr.length; x++){
        if(arr[x].value < minValue.value || !minValue.value){
            minValue = arr[x];
        }
    }
    return minValue.name;
};
document.getElementById("demo").innerHTML = min(values);

JS小提琴: http://jsfiddle.net/AgMbW/

答案 2 :(得分:0)

您可以将值放在像

这样的数组中
var values = [
    { name: 'a', value: 5 },
    { name: 'b', value: 10 },
    { name: 'c', value: 4 }
 ];

然后使用filter方法和Ahmad's comment提示:

var min_value = Math.min.apply(null, values.map(function(item) {
    return item.value;
}));

var min_name = values.filter(function (item) {
    return item.value == min_value;
})[0].name;

有关工作示例,请参阅此fiddle

答案 3 :(得分:0)

你可以这样做:

var obj = {"names":["a","b","c"], "values":[5,10,4]}

var min = Math.min.apply( Math, obj["values"] );
var result = obj["names"][obj["values"].indexOf(min)];
document.getElementById("demo").innerHTML=result;

这里的小提琴:http://jsfiddle.net/eUcug/

答案 4 :(得分:0)

方式1:

var x = 5;var getName = function(value){if(value === 5) return 'x'; else return null}

方式2: NameValue.getName = function(value){for(i = 1;i<=2;i++){if(this["val" + i].value === value) {return this["val" + i].name;break;}console.log(this["val" + i]);}return null;}NameValue.val2 = {name : 'y',value : 1};NameValue.prototype.add({name : 'x',value : 10})

NameValue.getName(10);  //return "x"

我希望你能理解如何找到变量名。