![](/img/trans.png)
[英]How to return multiple values with the method array.from and new set
[英]How to return multiple values from an array object as new variables?
我的數組如下所示:
var points = [{category: "Category A", correct: "0"},{category: "Category B", correct: "4"}];
我正在嘗試查看哪個類別的correct
數字最多。 我首先在數組映射上使用Math.max
來確定哪個是最大值(返回4
。但是當我嘗試對該返回值進行擴展時,它開始默認為NaN。
var res = Math.max.apply(Math,points.map(function(k){
return k.correct;
}));
o.correct
在這種情況下將返回4
。
我試過的
切換到k.category
->這將返回“ NaN”
將其視為函數並將兩個變量都存儲在Math.max
,這將拉出對象的兩個值,但會對數組中的兩個對象執行此操作。
Math.max.apply(Math,points.map(function(k){ var highestCat = k.category; var highestCor = k.correct; alert(highestCat + highestCor); }));
關於將這些內容存儲為2個以后可以引用的獨立變量的任何想法?
您可以對數組進行排序並獲取第一個元素
var points = [{category: "Category A", correct: "0"},{category: "Category B", correct: "4"}];
var sorted = points.sort((a,b)=>b.correct - a.correct)
var highest = sorted[0];
alert(highest.category + highest.correct);
與對象分解相同
var points = [{category: "Category A", correct: "0"},{category: "Category B", correct: "4"}];
var {category:highestCateogry,correct:highestCorrect} = points.sort((a,b)=>b.correct - a.correct)[0];
alert(highestCateogry + highestCorrect);
您可以使用數組減少
let points = [{category: "Category A", correct: "0"},{category: "Category B", correct: "4"},{category: "Category C", correct: "1"},{category: "Category D", correct: "5"},{category: "Category E", correct: "0"}]; const max = points.reduce((currentMax,newMax) => { return +currentMax.correct < +newMax.correct ? newMax :currentMax }) console.log(max)
您有NaN
因為正確的是string
而不是number
。 使用parseInt
函數將字符串轉換為整數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.