我刚刚发现JavaScript属性总是通过引用返回。我需要他们的价值观。
我有一个带有数组的对象作为其属性之一。我需要在该数组中交换两个值。
下面的代码非常简化,实际的数组包含对象,而不仅仅是字符串。我目前的解决方法是获取Array的两个索引。但我觉得我在这里做错了。
有什么建议吗?下面的代码不是我的解决方法,而是我尝试做出更好的事情。但阵列中没有任何变化。
var obj = {
arr: ['a', 'b', 'c', 'd']
};
console.log(obj);
var source = obj.arr[0];
var destination = obj.arr[1];
obj.arr[0] = destination;
obj.arr[1] = source;
console.log(obj);
stange是;输出首次是b,a,c,d。
答案 0 :(得分:4)
您需要更新阵列本身:
var source = obj.arr[0];
var destination = obj.arr[1];
obj.arr[0] = destination;
obj.arr[1] = source;