克隆JavaScript对象的最有效方法是什么?我已经看到obj = eval(uneval(o));被使用,但这是非标准的,只有Firefox支持.
我做过类似的事情,obj = JSON.parse(JSON.stringify(o));但质疑效率.
我也看到了具有各种缺陷的递归复制功能.
我很惊讶没有规范的解决方案.
将JavaScript中的数组复制到另一个数组时:
var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d');  //Now, arr1 = ['a','b','c','d']
我意识到arr2引用相同的数组arr1,而不是一个新的独立数组.如何复制数组以获得两个独立的数组?
我试图在javascript中深层复制嵌套对象的数组.我的阵列看起来像这样
var arr = [{name:"adam",age:"21"},
    {name:"freddie",age:"35",children:[{name:"mercury",age:"25"}]},
    {name:"jim",age:"35",children:[{name:"morrison",age:"25",children:[{name:"some", age:"40"}]}]}
    ];
我想对数组中的每个对象进行深层复制,我希望将arr的精确副本创建为不应该有对象引用的新数组.数组的深度也是未知的,即子数组可以达到任何级别.我已经通过这个链接 将一个对象数组复制到另一个数组而没有javascript中的对象引用(深层复制),但这对我没有帮助.我用google搜索并在jQuery中找到了一些解决方案,但这对我没有帮助,因为我对jQuery没有任何了解.
我也尝试用递归实现它,但这也不起作用 http://ideone.com/kJi5X3
我想在不使用jQuery或任何东西的情况下在javascript中完成它.我是JavaScript的新手,所以如果有任何库或简单的方法,我可能会错过.请帮我解决这个问题.提前致谢.
使用slice(0)和concat()在javascript中将对象数组复制到另一个数组中不起作用.
我已经尝试了以下测试,如果我使用这个获得深度复制的预期行为.但是,在复制的数组中进行更改后,原始数组也会被修改.
var tags = [];
for(var i=0; i<3; i++) {
    tags.push({
        sortOrder: i,
        type: 'miss'
    })
}
for(var tag in tags) { 
    if(tags[tag].sortOrder == 1) {
        tags[tag].type = 'done'
    }
}
console.dir(tags)
var copy = tags.slice(0)
console.dir(copy)
copy[0].type = 'test'
console.dir(tags)
var another = tags.concat()
another[0].type = 'miss'
console.dir(tags)
如何将数组的深层副本复制到另一个数组中,以便在复制数组中进行更改时不会修改原始数组.
我有我的减速机
const userAuthSlice = createSlice({
    name: "userAuth",
    initialState: {
        token: '',
    },
    reducers: {
        setToken: (state, action) => state.token = action.payload.test,
    },
});
我有我的调度命令
<button
   value={text.sign_in.submit}
   onClick={() => dispatch(userAuthSlice.actions.setToken({test:"test"}))}
/>
当我按下按钮时,我得到的是这个错误:

我已经隔离了所有内容,以确保这是问题所在,而没有其他问题。
为什么会弹出这个错误?