javascript - js的slice( )函数和浅复制

查看:96
本文介绍了javascript - js的slice( )函数和浅复制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1.问题

我有一个数组,希望分多次遍历它们,想借助slice()函数在每次遍历前,得到一些连续的数组元素。

slice()官方文档说:

slice() 方法会浅复制(shallow copy)数组的一部分到一个新的数组,并返回这个新数组。

这里说的浅复制该怎样理解?

2.代码

比如我的代码:

var a = ["php", "python", "java", "c++", "matlab", "ruby", "R", "julia"]
var b = a;     // 个人认为这个是浅复制
b === a    // true

var c = a.slice()

// 看了下c的内容:
c
["php", "python", "java", "c++", "matlab", "ruby", "R", "julia"]

c === a    // false  为什么是false呢,slice()不是返回浅复制吗?

我对浅复制的理解是赋予相同的内存地址,所以b===atrue,但是c===a为什么不是true呢,slice()返回的不是浅复制吗?

解决方案

这个浅复制指的是元素的浅复制, 而不是整个数组的浅复制啊. 数组还是新的, 和原来不是一个

这篇关于javascript - js的slice( )函数和浅复制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆