gpt4 book ai didi

javascript - 如何检查对象数组中的缺失值并使用特殊字符添加该缺失值

转载 作者:行者123 更新时间:2023-12-04 08:26:10 26 4
gpt4 key购买 nike

我目前正在通过对象值检查对象数组的缺失值,如果我使用数字或字符串数​​字,则效果很好。但在某些情况下,缺失值将是带有特殊字符的字符串数字。我试图拆分给定的值并取数字,然后检查该值是否丢失,但后来我坚持将该特殊字符分配回该值。这是我迄今为止尝试过的代码

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}]我做错了什么,我该如何解决我的问题?任何例子将不胜感激!

最佳答案

您可以匹配 minmax并将数据放入哈希表中以映射已知键或添加新对象。
对于想要的 key ,您可以使用新 key 传播对象。

const
getValue = v => +v.toString().match(/\d+/)[0],
one = '<0',
two = '20+',
data = [{ key: '<0', value: 0 }, { key: 2, value: 0 }, { key: 3, value: 0 }, { key: 7, value: 0 }, { key: 8, value: 0 }, { key: '20+', value: 0 }],
min = getValue(one),
max = getValue(two),
getKey = k => ({ [min]: one, [max]: two }[k] || k),
keys = data.reduce((r, o) => (r[getValue(o.key)] = o, r), {}),
result = Array.from(
{ length: max - min + 1 },
(_, i) => ({ key: null, value: 99, ...keys[min + i], key: getKey(min + i) })
);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何检查对象数组中的缺失值并使用特殊字符添加该缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65251765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com