Javascript 所有可用索引中的arr.splice索引插入

Javascript 所有可用索引中的arr.splice索引插入,javascript,vue.js,nuxtjs,Javascript,Vue.js,Nuxtjs,以上是我正在编写的代码。下面是每个obj变量日志的屏幕截图 我想要的是将该对象插入列表变量的索引 但循环完成后我得到的是 循环中的最后一项覆盖列表中的所有内容 下面的方式显示了索引 总之,我需要将obj插入到列表数组中的特定索引 编辑 错误变量如下所示 我需要它看起来像这样 const list = [] const obj = { name: '', mobile: '' } _.f

以上是我正在编写的代码。下面是每个
obj
变量日志的屏幕截图

我想要的是将该对象插入
列表
变量的
索引

但循环完成后我得到的是

循环中的最后一项覆盖
列表中的所有内容

下面的方式显示了
索引

总之,我需要将
obj
插入到
列表
数组中的特定
索引

编辑

错误
变量如下所示

我需要它看起来像这样

        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)
        })

问题是在
forEach
循环之外创建
obj
,并为
errors
中的所有元素插入相同的
obj
。如果随后更新
obj
,则将更新所有元素,因为所有元素都是对同一对象的引用。如果您希望每个
索引都有自己的对象,您应该在代码中反映出来

const错误={
“contacts.0.mobile”:[“错误。手机号码是必填字段。”],
“联系人.0.name”:[“错误。联系人名称是必填字段。”],
“联系人1.手机”:[“错误。手机号码是必填字段。”],
“contacts.1.name”:[“错误。Contact name是必填字段。”],
};
常量列表=[];
_.forEach(错误,(值,键)=>{
常量[,索引,字段]=键拆分(“.”);
if(!list[index])list.splice(索引,1,{name:,mobile:});
列表[索引][字段]=值[0];
});
控制台日志(列表)

这是否符合您的要求

函数转换(数据){
返回Object.entries(data).reduce((p,[key,[message]])=>{
常量keyElements=key.split('.'))
p[keyElements[1]]=p[keyElements[1]]| |{}
p[keyElements[1]][keyElements[2]]=消息
返回p
}, [])
}
常数数据={
'contacts.0.mobile':[“错误。手机号码是必填字段。”],
“联系人.0.name”:[“错误。联系人名称是必填字段。”],
“联系人1.手机”:[“错误。手机号码是必填字段。”],
“contacts.1.name':[“错误。Contact name是必填字段。”]
}

console.log(transform(data))
“总而言之,我需要将obj插入列表数组中的特定索引中。”那么您不应该只执行
list[index]=obj
?@3limin4t0r我正在用obj[field]=value[0]替换该值。如果我在foreach中实例化obj,前三个名称将消失。@VLAZ我这样做了,但它的行为与splice相同。这个问题可能可以简化。
错误
是什么样的(即输入),您希望输出是什么样的?@BenAston我会更新这个问题。哦。我现在明白了,但是当我尝试这个时,我只得到“mobile”字段和它们的值,“name”字段被覆盖。我如何解决这个问题?@Lucentyr回答说,我必须知道
错误
的内容是什么,以及预期的
列表
结果是什么。因此,我无法用提供的信息回答这个问题。我用
错误的内容和
列表所需的输出更新了问题。通过您更新的注释,我只得到名称值。@Lucentyr我不完全确定您的意思,我已将代码块更改为一个片段,它似乎运行得很好。请问,
p[index]=p[index]| |{}
是什么意思如果某个对象在该索引处不存在,则添加一个。
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' }
]