我想让 renderData()
显示 max
中的值。当我在 calculateData()
中使用 console.log(max)
时,它会显示三个 JSON 对象的所有三个最大值。但是,当我在 renderData() 中返回 max 时,它只显示第一个值。为什么会这样?我该怎么做才能让它显示所有三个值而不是仅一个值?注意:data
是正在传递的对象的 json 列表。谢谢!
function calculateData(data) {
for (i in data) {
var arr = [];
var max;
var obj = data[i].tones;
obj.map(function(item) {
var data = item.score;
arr.push(data);
})
max = arr.reduce(function(a, b) {
return Math.max(a, b);
})
//Returns an array containing dominant [emotion_tone, language_tone, social_tone]
return renderData(max);
}
}
function renderData(max) {
console.log(max);
};
最佳答案
也许这就是你的意图?它将迭代整个数据对象,计算每次迭代的最大值,将它们收集在一个数组中,然后最终使用该数组调用 renderData 函数。
function calculateData(data) {
var maxes = [];
for (i in data) {
var arr = [];
var max;
var obj = data[i].tones;
obj.map(function(item) {
var data = item.score;
arr.push(data);
})
maxes.push(arr.reduce(function(a, b) {
return Math.max(a, b);
}));
}
return renderData(maxes);
}
function renderData(max) {
console.log(max);
};
关于javascript - 函数在传入另一个函数后 trim 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44033712/