Javascript 如何从维度数组中获取最大值以及文本/名称?
我有一个维度“dataArray”,如下所示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 = [ {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)