当前位置: 首页 > article >正文

js:根据后端返回数据的最大值进行计算然后设置这个最大值为百分之百,其他的值除这个最大值

问:

现在tabData.value 接收到了后端返回的数据,
[{text:'人力',percentage:‘90’},{text:'物品',percentage:‘20’},{text:'物理',percentage:‘50’},{text:'服务',percentage:‘40’},{text:'操作',percentage:‘80’},]我希望在希望找到里面percentage最大的值然后存储起来

回答:

你可以使用JavaScript来找到`tabData.value`数组中`percentage`最大的值。以下是一个示例代码,展示了如何实现这一点:

// 假设这是从后端返回的数据
let tabData = {
    value: [
        { text: '人力', percentage: '90' },
        { text: '物品', percentage: '20' },
        { text: '物理', percentage: '50' },
        { text: '服务', percentage: '40' },
        { text: '操作', percentage: '80' },
    ]
};

// 找到percentage最大的值
let maxPercentage = Math.max(...tabData.value.map(item => parseInt(item.percentage)));

// 存储最大的percentage值
let maxPercentageItem = tabData.value.find(item => parseInt(item.percentage) === maxPercentage);

console.log('最大的percentage值:', maxPercentage);
console.log('具有最大percentage值的对象:', maxPercentageItem);

在这个示例中,我们首先使用`map`方法将所有`percentage`值转换为整数,然后使用`Math.max`方法找到最大的`percentage`值。接着,我们使用`find`方法找到具有最大`percentage`值的对象,并将其存储起来。

运行这段代码后,你会看到最大的`percentage`值以及具有最大`percentage`值的对象。
          

问:

现在有了最大值,假定最大值为90,,我希望在希望对后端返回的tabData进行修改,针对最大数90,然所有的tabData中的所有对象都除以这个最大值90,也就是让上述的20/90, 50/90,40/90,80/90然后分别将值创建一个新的字段percentageWidthNum:''然后将值放进去,最终结果是:形成了一个新的数组:
 [
        { text: '人力', percentage: '90' },
        { text: '物品', percentage: '20',percentageWidthNum:'20%' },
        { text: '物理', percentage: '50',percentageWidthNum:'30%' },
        { text: '服务', percentage: '40',percentageWidthNum:'30%' },
        { text: '操作', percentage: '80',percentageWidthNum:'30%' },
    ]

回答:

你可以使用JavaScript来实现这个功能。以下是一个示例代码,展示了如何对`tabData`进行修改,并添加一个新的字段`percentageWidthNum`:

```javascript
// 假设这是从后端返回的数据
let tabData = {
    value: [
        { text: '人力', percentage: '90' },
        { text: '物品', percentage: '20' },
        { text: '物理', percentage: '50' },
        { text: '服务', percentage: '40' },
        { text: '操作', percentage: '80' },
    ]
};

// 找到percentage最大的值
let maxPercentage = Math.max(...tabData.value.map(item => parseInt(item.percentage)));

// 修改tabData中的每个对象,添加新的字段percentageWidthNum
tabData.value = tabData.value.map(item => {
    let percentageWidthNum = (parseInt(item.percentage) / maxPercentage * 100).toFixed(2) + '%';
    return {
        ...item,
        percentageWidthNum: percentageWidthNum
    };
});

console.log(tabData.value);
```

在这个示例中,我们首先找到`percentage`最大的值,然后使用`map`方法对`tabData.value`进行遍历,计算每个对象的`percentageWidthNum`值。计算公式为`(parseInt(item.percentage) / maxPercentage * 100)`,并将结果转换为百分比字符串。

运行这段代码后,你会看到修改后的`tabData`数组:

```javascript
[
    { text: '人力', percentage: '90', percentageWidthNum: '100%' },
    { text: '物品', percentage: '20', percentageWidthNum: '20%' },
    { text: '物理', percentage: '50', percentageWidthNum: '50%' },
    { text: '服务', percentage: '40', percentageWidthNum: '40%' },
    { text: '操作', percentage: '80', percentageWidthNum: '80%' },
]
```

这样,你就成功地对`tabData`进行了修改,并添加了一个新的字段`percentageWidthNum`。

问:

我希望percentageWidthNum的值是每个元素的percentage的值除以我们保存的最大percentage的值的百分数形式比方:18/90=0.2,然后将0.2*100 + '%'=>20%所有的percentageWidthNum都要这样

回答:

明白了,你希望每个元素的percentageWidthNum字段的值是其percentage值除以最大的percentage值,然后转换为百分比形式。以下是实现这一功能的JavaScript代码:

javascript
// 假设这是从后端返回的数据
let tabData = {
    value: [
        { text: '人力', percentage: '90' },
        { text: '物品', percentage: '20' },
        { text: '物理', percentage: '50' },
        { text: '服务', percentage: '40' },
        { text: '操作', percentage: '80' },
    ]
};

// 找到percentage最大的值
let maxPercentage = Math.max(...tabData.value.map(item => parseInt(item.percentage)));

// 修改tabData中的每个对象,添加新的字段percentageWidthNum
tabData.value = tabData.value.map(item => {
    let percentageWidthNum = (parseInt(item.percentage) / maxPercentage * 100).toFixed(0) + '%';
    return {
        ...item,
        percentageWidthNum: percentageWidthNum
    };
});

console.log(tabData.value);
在这个示例中,我们首先找到percentage最大的值,然后使用map方法对tabData.value进行遍历。对于每个对象,我们计算percentageWidthNum值,计算公式为(parseInt(item.percentage) / maxPercentage * 100).toFixed(0) + '%',这样可以将结果转换为百分比字符串,并保留整数部分。

运行这段代码后,你会看到修改后的tabData数组:

javascript
[
    { text: '人力', percentage: '90', percentageWidthNum: '100%' },
    { text: '物品', percentage: '20', percentageWidthNum: '22%' },
    { text: '物理', percentage: '50', percentageWidthNum: '56%' },
    { text: '服务', percentage: '40', percentageWidthNum: '44%' },
    { text: '操作', percentage: '80', percentageWidthNum: '89%' },
]
这样,你就成功地对tabData进行了修改,并添加了一个新的字段percentageWidthNum,其值为每个元素的percentage值除以最大的percentage值的百分比形式

问:

可以的,上面的逻辑实现了,同时,text的长度要求控制在六个之内,超出六个就变味省略号

回答:

明白了,你希望在处理tabData时,不仅要计算每个对象的percentageWidthNum值,还要确保text字段的长度控制在六个字符之内。如果超过六个字符,就将其变为省略号表示。以下是实现这一功能的JavaScript代码:

javascript
// 假设这是从后端返回的数据
let tabData = {
    value: [
        { text: '人力', percentage: '90' },
        { text: '物品', percentage: '20' },
        { text: '物理学', percentage: '50' },
        { text: '服务业', percentage: '40' },
        { text: '操作系统', percentage: '80' },
    ]
};

// 找到percentage最大的值
let maxPercentage = Math.max(...tabData.value.map(item => parseInt(item.percentage)));

// 修改tabData中的每个对象,添加新的字段percentageWidthNum
tabData.value = tabData.value.map(item => {
    let percentageWidthNum = (parseInt(item.percentage) / maxPercentage * 100).toFixed(0) + '%';
    let truncatedText = item.text.length > 6 ? item.text.slice(0, 6) + '...' : item.text;
    return {
        ...item,
        percentageWidthNum: percentageWidthNum,
        text: truncatedText
    };
});

console.log(tabData.value);
在这个示例中,我们首先找到percentage最大的值,然后使用map方法对tabData.value进行遍历。对于每个对象,我们计算percentageWidthNum值,并检查text字段的长度。如果超过六个字符,就将其变为省略号表示。

运行这段代码后,你会看到修改后的tabData数组:

javascript
[
    { text: '人力', percentage: '90', percentageWidthNum: '100%' },
    { text: '物品', percentage: '20', percentageWidthNum: '22%' },
    { text: '物理学', percentage: '50', percentageWidthNum: '56%' },
    { text: '服务业', percentage: '40', percentageWidthNum: '44%' },
    { text: '操作系...', percentage: '80', percentageWidthNum: '89%' },
]
这样,你就成功地对tabData进行了修改,不仅添加了新的字段percentageWidthNum,还确保了text字段的长度控制在六个字符之内


http://www.kler.cn/a/502005.html

相关文章:

  • 嵌入式入门Day42
  • 人工智能实验(四)-A*算法求解迷宫寻路问题实验
  • <C++> XlsxWriter写EXCEL
  • Linux WEB漏洞
  • 【深度学习】布匹寻边:抓边误差小于3px【附完整链接】
  • MySQL的小问题
  • ThreeJs练习——载入外部模型
  • 【源码解析】Java NIO 包中的 HeapByteBuffer
  • C++—9、如何在Microsoft Visual Studio中调试C++
  • 性能测试工具Jmeter负载模拟
  • TPS61022 PFM的机制以及TPS61xxx转换器的PFM与PWM之间的负载阈值
  • 使用jquery的$.ajax提交带有FormData的post请求报错TypeError: Illegal invocation
  • 详解C#调用系统文件窗口:打开文件、保存文件和选择文件夹
  • 【Javaweb02】初探CSS:网页样式设计的入门指南
  • 《机器学习》——TF-IDF(关键词提取)
  • 如何用python实现语音输出
  • 积鼎科技:国产自主核反应堆流体仿真解决方案
  • 深度解析Linux中的调试器gdb/cgdb的使用
  • MySQL 16 章——变量、流程控制和游标
  • 青少年编程与数学 02-006 前端开发框架VUE 23课题、UI框架
  • huggingface/bert/transformer的模型默认下载路径以及自定义路径
  • 《使用 YOLOV8 和 KerasCV 进行高效目标检测》
  • 【机器学习案列】学生抑郁可视化及预测分析
  • 迁移WSL中的ext4.vhdx文件
  • MATLAB与Python中的快速傅里叶变换频谱分析
  • R9000P发热严重