我想在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>
答案 0 :(得分:1)
这应该可以解决问题:
//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)
将值存储在对象数组中。每个对象都包含name
和value
属性。然后只需迭代值并存储最低值。
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"
我希望你能理解如何找到变量名。