Javascript 如何从维度数组中获取最大值以及文本/名称?

Javascript 如何从维度数组中获取最大值以及文本/名称?,javascript,arrays,Javascript,Arrays,我有一个维度“dataArray”,如下所示 dataArray = [ {name:"Apples", score: 3.5}, {name:"Oranges", score: 3.7}, {name:"Grapes", score: 4.1} ]; 是否希望从dataArray和名称中获得最高分数 function playerArray() { dataArray = [{ name: "Apples", score: 3.5 }, { name: "O

我有一个维度“dataArray”,如下所示

dataArray = [ {name:"Apples", score: 3.5}, {name:"Oranges", score: 3.7}, {name:"Grapes", score: 4.1} ];
是否希望从dataArray和名称中获得最高分数

function playerArray() {

  dataArray = [{
    name: "Apples",
    score: 3.5
  }, {
    name: "Oranges",
    score: 3.7
  }, {
    name: "Grapes",
    score: 4.1
  }];

  for (i = 0; i < dataArray.length; i++) {
    var nameArray = dataArray[0].name;
    var scoreArray = dataArray[0].score;

    var largest = Math.max.apply(Math, scoreArray);

    alert(largest[0].score);
  }
}
函数playerArray(){
数据数组=[{
名称:“苹果”,
分数:3.5
}, {
名称:“橙子”,
分数:3.7
}, {
名称:“葡萄”,
分数:4.1
}];
对于(i=0;i
在执行“playerArray()”时,会引发以下错误: html:24未捕获类型错误:对非对象调用CreateListFromArrayLike 在playerArray

好的简单方式:

dataArray = [ {name:"Apples", score: 3.5}, {name:"Oranges", score: 3.7}, {name:"Grapes", score: 4.1} ];

var maxScore = {name:'',score:0};

for(var i = 0; i< dataArray.length; i++){
  var currElem = dataArray[i];
  var currScore = currElem.score;

  //keep track of highest score so far
  if(maxScore.score < currScore){
     maxScore.name = currElem.name;
     maxScore.score = currElem.score;
  }

}

console.log(maxScore)

使用索引(
maxIndex
)进行如下搜索:

dataArray=[{
名称:“苹果”,
分数:3.5
}, {
名称:“橙子”,
分数:3.7
}, {
名称:“葡萄”,
分数:4.1
}];
var-maxIndex=0;
对于(i=1;i您可以使用

let dataArray=[{name:“Apples”,分数:3.5},{name:“Oranges”,分数:3.7},{name:“Grapes”,分数:4.1}];
设max=dataArray.reduce((acc,elem)=>{return elem.score>acc.score?elem:acc},{name:,score:-1});

控制台日志(最大值)这是一项非常简单的工作,只需一个简单的reduce。我想
.reduce()
的使用与我们随处可见的求和数组元素示例一样重要

arraySum = arr.reduce((p,c) => p+c)
现在按照这个,

var data=[{name:“Apples”,得分:3.5},{name:“Oranges”,得分:3.7},{name:“Grapes”,得分:4.1}],
数据最大值=数据减少((p,c)=>p.score>c.score?p:c);

console.log(dataMax)
如果不想在循环中包含Math.max部分,请将其放在后面。也许可以使用
-Infinity
初始化分数,以确保其正确性。如果dataArray中始终至少有一个成员,则不需要累加器的初始值。;-)
var maxScore = {name:'',score:0};

dataArray.map(function(elem) {
  if (maxScore.score < elem.score) {
    maxScore = elem
  }
});
arraySum = arr.reduce((p,c) => p+c)