javascript - 通过引用交换对象中的数组元素

标签 javascript

我刚刚发现 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/

相关文章:

javascript - 无法在平均堆栈中实例化模块 ngMaterial

javascript - 使用 Jquery 的 Web API,无法加载资源 : the server responded with a status of 404 (Not Found)

javascript - 链接到#时,停留在页面的当前位置

javascript - 将CSS应用于IE10及以下

javascript - jQuery addClass 不覆盖

javascript - 如何在同一个 Polymer 元素中扩展多个 mixin?

javascript - 在 ES6 导入中重写 require ('shipit-deploy' )(shipit) 之类的东西?

javascript - 如何在 Node.js 中将非 ASCII 引号替换为 ASCII 引号?

javascript - 如何用两根手指点击显示/隐藏 jQuery 移动标题?

javascript - 在输入字段中单击时,菜单下拉列表中的表单不会保留 - Bootstrap 3