【发布时间】:2020-10-20 10:32:19
【问题描述】:
const list = []
const obj = {
name: '',
mobile: ''
}
_.forEach(errors, (value, key) => {
// eslint-disable-next-line no-debugger
// debugger
const field = key.split('.')[2]
const index = key.split('.')[1]
obj[field] = value[0]
list.splice(index, 1, obj)
console.log(obj)
})
上面是我正在处理的代码。下面是每个obj 变量的日志截图
我想要的是将该对象插入到 list 变量的 index 中。
但循环完成后我得到的是
循环中的最后一项会覆盖list 数组中的所有内容。
顺便说一下index
总而言之,我需要将obj 插入到list 数组中的特定index。
编辑
errors 变量如下所示
我需要它看起来像这样。
list = [
{ name: 'name error message here', mobile: 'error message here' },
{ name: 'name error message here', mobile: 'error message here' },
{ name: 'name error message here', mobile: 'error message here' },
{ name: 'name error message here', mobile: 'error message here' }
]
【问题讨论】:
-
"总而言之,我需要将 obj 插入到列表数组中的特定索引中。" 那你不应该只做
list[index] = obj吗? -
@3limin4t0r 我正在用 obj[field] = value[0] 替换该值。如果我在 foreach 中实例化 obj,前三个名称将消失。
-
@VLAZ 我这样做了,但它与拼接的行为方式相同。
-
这个问题或许可以简化。
errors是什么样的(即输入),您希望输出是什么样的? -
@BenAston 我会更新问题。
标签: javascript vue.js nuxtjs