javascript - 函数在传入另一个函数后 trim 值

标签 javascript json node.js watson

我想让 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/

相关文章:

javascript - 如何在动态加载的页面中强制从 js 中点击 html 元素

javascript - 尝试为要翻译的语言设置 JSON 文件?

node.js - jsreport 查找扩展失败

javascript - 计算jsf中数据表上输入文本字段的总数

javascript - 如何使用 localscroll.js 进行水平导航

java - 在Java中序列化JSON数据是一种有效的方法吗?

mysql - 在使用 node express 和 ejs 的 html 页面上显示 express 验证器生成的错误时遇到问题

javascript - ReactJS + MySQL 无法使用 api 创建新对象

Javascript setInterval 方法始终返回与 PHP 方法相同的结果,但我需要更改数据

android - 使用 JSON 从平板电脑本地文件加载图像