如何解决如果对象的其他数组中存在值,则替换数组的值
我正在尝试进行数组操作 基本上,我有两个动态生成的数组,可以是任意长度。
let arr1 =['test','XDDD','test new']
let arr2 = [{value: 'test',error : 'error'},{value: 'test new',error: 'invalid'}]
我检查arr2
中是否存在arr1
对象属性值,如果是,则替换索引处的arr1
值。例如,测试位于索引0
,然后像测试[错误]一样替换它,即arr2.value + arr2.error
。同样,"test new"
应该在同一索引处替换为"test new [invalid]"
最终输出['test [error]','test new [invalid]']
解决方法
arr1.map(el => {
const error = arr2.find(a => a.value === el);
return error ? `${error.value} [${error.error}]` : el;
});
,
您可以使用forEach(修改arr1)或map(如果需要新数组)来完成此操作。
arr2.forEach(item => {
const idx = arr1.findIndex(e => e === item.value);
if (idx >= 0) {
arr1[idx] = `${arr1[idx]} [${item.error}]`;
}
})
https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/forEach
const newArr = arr1.map(item => {
const err = arr2.find(a => a.value === item);
return err ? `${item} [${err.error}]` : item;
});
https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/map
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。