javascript - 如何在动态生成的对象字符串值上添加过滤器
问题描述
我是编码新手,我有一个动态生成的对象数据,如下所示:
data: {
1-leadTimeNormal: 10
3-leadTimeNormal: 22
2-leadTimeNormal: 10
2-leadTimeOptimal: 2
3-leadTimeOptimal: 22
1-leadTimeOptimal: 7
}
其中,左侧的整数值(1、3、2 等)是动态生成的。现在,我想设置一个条件来检查 1-leadTimeNormal 是否小于 1-leadTimeOptimal(使用 if Else)和 2-leadTimeNormal 是否小于 2-leadTimeOptimal 等等,并使用在控制台日志中返回一些字符串javascript
解决方案
您可以遍历从 1 到键数/2 的每个值
data = {
'1-leadTimeNormal': 10,
'3-leadTimeNormal': 22,
'2-leadTimeNormal': 10,
'2-leadTimeOptimal': 2,
'3-leadTimeOptimal': 22,
'1-leadTimeOptimal': 7
}
let arr = Object.keys(data)
for(let i=1; i<=arr.length/2; i++) {
if(data[`${i}-leadTimeNormal`] < data[`${i}-leadTimeOptimal`]) {
console.log('hello world')
} else {
console.log('bye world')
}
}
data = {
'1-leadTimeNormal': 10,
'3-leadTimeNormal': 22,
'2-leadTimeNormal': 10,
'2-leadTimeOptimal': 2,
'3-leadTimeOptimal': 22,
'1-leadTimeOptimal': 7
}
let keys = Object.keys(data).filter(key => key.includes('leadTimeNormal'))
keys.forEach(key => {
let num = key.replace(/^([0-9]+)-.*/, '$1')
if (data[key] < data[`${num}-leadTimeOptimal`]) {
console.log('hello world')
} else {
console.log('bye world')
}
});
推荐阅读
- blazor - 当我在表单中选择另一个文本框时,羽毛笔编辑器的内容被清除
- python - 我的代码返回“命令 '['python3']' 2 秒后超时”
- c# - 就地更新 PDF 图像
- javascript - React Native:获取函数发送空主体
- neo4j - 从 neo4j 中的 2 个 csv 文件导入数据
- python - 在我的 Django 项目中提取了错误的日期时间
- r - 在 R 中创建另一列
- node.js - Synology 上的 npm install 给出 zlib 无效距离错误
- cmake - CMake 3.12 中的列表排序
- hyperledger-fabric - 需要通道功能 V2_0,但不支持 Fabric V2