簡體   English   中英

如何從數組對象返回多個值作為新變量?

[英]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

JSFiddle


我試過的

  1. 切換到k.category

    ->這將返回“ NaN”

  2. 將其視為函數並將兩個變量都存儲在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM