我刚刚发现 JavaScript 属性总是通过引用返回。我需要他们的值(value)观。
我有一个对象,其属性之一是数组。我需要交换该数组中的两个值。
下面的代码被极大地简化了,实际的数组包含对象,而不仅仅是字符串。我当前的解决方法包括获取数组的两个索引。但我感觉我在这里做错了什么。
有什么建议吗?下面的代码不是我的解决方法,而是我尝试做得更好的东西。但数组内没有任何变化。
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);
奇怪的是;第一次输出是偶数 b, a, c, d。
最佳答案
您需要更新数组本身:
var source = obj.arr[0];
var destination = obj.arr[1];
obj.arr[0] = destination;
obj.arr[1] = source;
关于javascript - 通过引用交换对象中的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14615883/