我目前正在通过对象值检查对象数组的缺失值,如果我使用数字或字符串数字,那么效果很好。但在某些情况下,缺失值将是带有特殊字符的字符串数字。我尝试分割给定的值并获取数字,然后检查该值是否丢失,但随后我陷入了将该特殊字符分配回该值的困境。这是我迄今为止尝试过的代码
const one = '<0';
const two = '20+';
const data = [
{ key: 1, value: 0 },
{ key: 2, value: 0 },
{ key: 3, value: 0 },
{ key: 7, value: 0 },
{ key: 8, value: 0 },
]
const min = one.split(/([0-9]+)/);
const max = two.split(/([0-9]+)/);
const numbersArr = new Array(+max[1]);
for (let i = +min[1]; i <= +max[1]; i++) {
numbersArr[i] = i;
}
const missingLabels = numbersArr.filter(
(itemOne) => !data.some((itemTwo) => itemTwo.key == `${min[0].length>0 && +min[1] === itemOne ? min[0] : ''}${itemOne}${max[2].length>0 && +max[1] === itemOne ? max[2] : ''}`)
);
missingLabels.map((item) => {
data.push({ key: `${min[0].length>0 ? min[0].length : null}${item}`, value: 0 });
});
console.log(data)
预期的结果应该是[{key: '<0', value: 0}, {key: '1', value: 0}, ... {key: '20+', value:0}]
我做错了什么,我该如何解决我的问题?任何例子将不胜感激!
达令说
相关分类