一个人的价值,应该看他贡献什么,而不应当看他取得什么。 ——<阿尔伯特·爱因斯坦>
对数组进行洗牌
这段代码运用了 Fisher-Yates Shuffling算法 对数组进行洗牌。
https://www.wikiwand.com/en/Fisher%E2%80%93Yates_shuffle
1 | function shuffle(arr) { |
调用示例:
1 | var a = [1, 2, 3, 4, 5, 6, 7, 8]; |
清空数组
如果你定义了一个数组,然后你想清空它。 通常,你会这样做:
1 | // 定义一个数组 |
但是,这有一个效率更高的方法来清空数组。 你可以这样写:
1 | var list = [1, 2, 3, 4]; |
list = []
将一个新的数组的引用赋值给变量,其他引用并不受影响。 这意味着以前数组的内容被引用的话将依旧存在于内存中,这将导致内存泄漏。list.length = 0
删除数组里的所有内容,也将影响到其他引用。
然而,如果你复制了一个数组(A 和 Copy-A),如果你用 list.length = 0
清空了它的内容,复制的数组也会清空它的内容。
考虑一下将会输出什么:
1 | var foo = [1,2,3]; |
更多内容请看Stackoverflow: difference-between-array-length-0-and-array
https://stackoverflow.com/questions/4804235/difference-between-array-length-0-and-array
参考
关注【公众号】,了解更多。
赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!