目的

对于这两个数组操作接口,由于不理解, 往往被误用, 或者不知道如何使用。本文尝试给出容易理解的阐述。

数组

什么是数组?

数组是一个基本的数据结构, 是一个在内存中依照线性方式组织元素的方式, 其中元素的类型必须是相同的, 这个每个元素的索引地址才能被计算出来, 索引通常是数字,用来计算元素之间存储位置的偏移量。

结构如下:

javascript数组

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

javascript中 Array 是一个对象, 而且是全局对象, 用于创建实际的数组, 数组是一种类似链表的对象。

创建数组:

var fruits = ["Apple", "Banana"];

console.log(fruits.length);
// 2

利用index访问数组元素:

var first = fruits[0];
// Apple var last = fruits[fruits.length - 1];
// Banana

遍历数组元素:

fruits.forEach(function (item, index, array) {
console.log(item, index);
});
// Apple 0
// Banana 1

向数组后添加元素:

var newLength = fruits.push("Orange");
// ["Apple", "Banana", "Orange"]

从数组尾部删除元素:

var last = fruits.pop(); // remove Orange (from the end)
// ["Apple", "Banana"];

从数组头部删除元素:

var first = fruits.shift(); // remove Apple from the front
// ["Banana"];

添加元素到数组头部:

var newLength = fruits.unshift("Strawberry") // add to the front
// ["Strawberry", "Banana"];

查找元素的索引号:

fruits.push("Mango");
// ["Strawberry", "Banana", "Mango"] var pos = fruits.indexOf("Banana");
// 1

使用索引号删除元素:

var removedItem = fruits.splice(pos, 1); // this is how to remove an item
// ["Strawberry", "Mango"]

拷贝数组:

var shallowCopy = fruits.slice(); // this is how to make a copy
// ["Strawberry", "Mango"]

创建数组的语法:

Syntax

[element0, element1, ..., elementN]
new Array(element0, element1[, ...[, elementN]])
new Array(arrayLength)
elementN

A JavaScript array is initialized with the given elements, except in the case where a single argument is passed to the Array constructor and that argument is a number. (See below.) Note that this special case only applies to JavaScript arrays created with the Array constructor, not array literals created with the bracket syntax.

arrayLength

If the only argument passed to the Array constructor is an integer between 0 and 232-1 (inclusive), this returns a new JavaScript array with length set to that number. If the argument is any other number, a RangeError exception is thrown.

Array.prototype.slice

slice 英文翻译:

http://www.iciba.com/slice/

原意为 一块面包 切下来的 薄片。

N-COUNT (指食物切下的)片,薄片 A slice of bread, meat, fruit, or other food is a thin piece that has been cut from a larger piece. 

  • Try to eat at least four slices of bread a day.

    每天尽量至少吃 4 片面包。

  • ...water flavored with a slice of lemon.

    加了一片柠檬调味的水

aaarticlea/jpeg;base64,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" width="357" height="238">

引申意为 整体中的 一部分。

N-COUNT 部分;份 You can use slice to refer to a part of a situation or activity. 

  • Fiction takes up a large slice of the publishing market.

    小说在出版市场上占了很大的份额。

  • ...a car that represents a slice of motoring history.

    一辆代表了一段汽车发展史的轿车

结合数组的定义, 此接口是从  数组中 切下来 一部分, 或者成为一片, 可能片的长度有点大就成为一段。

例如从这个数组中

slice 切出一部分:

MDN定义

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

The slice() method returns a shallow copy of a portion of an array into a new array object. 【注意:这里面说的是浅拷贝】

Syntax

arr.slice([begin[, end]])

Parameters

begin

Zero-based index at which to begin extraction.

As a negative index, begin indicates an offset from the end of the sequence. slice(-2) extracts the last two elements in the sequence.

If begin is omitted, slice begins from index 0.

end

Zero-based index at which to end extraction. slice extracts up to but not including end.

slice(1,4) extracts the second element up to the fourth element (elements indexed 1, 2, and 3).

As a negative index, end indicates an offset from the end of the sequence. slice(2,-1) extracts the third element through the second-to-last element in the sequence.

If end is omitted, slice extracts to the end of the sequence (arr.length).

说明:

1、 浅拷贝

2、 slice() 无入参, 则拷贝整个数组

3、 slice(begin),只有开始入参, 即end省略, 则表示 从begin到arr.length元素都取得。

4、 slice(begin, end) 取得下标为 [begin, end-1] 的元素。

5、 begin 或者 end为负值,则表示从数组后端开始计数。

例子:

// Our good friend the citrus from fruits example
var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var citrus = fruits.slice(1, 3); // citrus contains ['Orange','Lemon']

Array.prototype.splice

splice:

http://www.iciba.com/splice/

VERB 绞接(绳子);粘接(胶片、磁带等) If you splice two pieces of rope, film, or tape together, you join them neatly at the ends so that they make one continuous piece. 

  • He taught me to edit and splice film...

    他教我剪辑和粘接胶片。

  • The film will be spliced with footage of Cypress Hill to be filmed in America.

    这部电影要和将在美国拍摄的柏树山乐队的音乐片段粘接在一起。

绞接(绳子);粘接(胶片、磁带等)

将 两段 影片 或者绳子, 使用胶结 或者 绞接 的方式, 将其连接起来, 其连接部位称为 胶结处、 绞接处 ,  即为

splice

作为动词, 就是  绞接、 胶结(连接两段相同的长条状物体)。

但是搜索splice图片, 会出现很多一部电影相关的图片(中文 人兽杂交 英文名为 splice):

这个故事, 是说两个科学家, 违反科学道德, 利用人类基因和兽类基因, 做杂交试验, 生产出一个新的物种, 这个物种就是 杂交(splice), 此杂交是基因序列的 拼接, 进而产生杂交的结果, 产生个人不人,兽不兽的物体。

可以想象基因是一条长长的链条, 基因链条中 基因组排列 决定了 生命的特征, 人的生老病死都是由他决定。

splice电影中, 基因条拼接的意思, 猜测工作应该是这样, 将人类的基因条中, 挖掉某一段(slice), 补上兽类的基因一小段, 这个补的动作,就是拼接 splice。

MDN定义

The splice() method changes the content of an array by removing existing elements and/or adding new elements.

注意splice函数,改变现有数组内容, 其功能包括 删除元素 和 添加元素。

Syntax

array.splice(start, deleteCount[, item1[, item2[, ...]]])
Parameters
start

Index at which to start changing the array. If greater than the length of the array, actual starting index will be set to the length of the array. If negative, will begin that many elements from the end.

deleteCount

An integer indicating the number of old array elements to remove. If deleteCount is 0, no elements are removed. In this case, you should specify at least one new element. If deleteCount is greater than the number of elements left in the array starting at start, then all of the elements through the end of the array will be deleted.

itemN

The element to add to the array. If you don't specify any elements, splice() will only remove elements from the array.
Returns

An array containing the deleted elements. If only one element is removed, an array of one element is returned. If no elements are removed, an empty array is returned.

说明:

1、 splice 接口 改变现有数组内容。

2、 splice 可以删除元素 和 添加元素。  <<---- 功能衍生于 splice电影。

删除和添加 正体现了拼接的要素, 删除-破坏了现有数组,破坏之后需要进行修补,

修补的结果就是拼接新的数组段,splice 拼接新的数组段, 合并到现有数组中。

这两个步骤, 多么类似 电影人兽杂交中基因拼接的标准步骤 (挖掉人类基因中坏的部分, 在这个位置上不上兽类的良好基因), 怀疑js这个接口的定义这, 是收到splice这个电影的启发。 否则按照英文定义, splice只有拼接的含义, 没有挖掉的含义, 不应该在此接口中实现挖掉的功能。

3、splice(begin, count), 表示从begin位置开始删除count个元素。

begin为负值表示从数组尾部向前计数。

如果 count大于数组的从begin位置计算的元素个数, 则到结束所有的元素都将被删除。

4、splice(begin, 0, itema), 表示在begin位置后面添加itema元素。

5、splice(begin, 1, itema, itemb), 全功能用法, 在begin位置开始删除一个元素, 然后在删除元素的位置替换上元素  itema 和 itemb。

6、 splice 返回 删除元素的 数组。

例子:

var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];

// removes 0 elements from index 2, and inserts 'drum'
var removed = myFish.splice(2, 0, 'drum');
// myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
// removed is [], no elements removed // removes 1 element from index 3
removed = myFish.splice(3, 1);
// myFish is ['angel', 'clown', 'drum', 'surgeon']
// removed is ['mandarin'] // removes 1 element from index 2, and inserts 'trumpet'
removed = myFish.splice(2, 1, 'trumpet');
// myFish is ['angel', 'clown', 'trumpet', 'surgeon']
// removed is ['drum'] // removes 2 elements from index 0, and inserts 'parrot', 'anemone' and 'blue'
removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// myFish is ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon']
// removed is ['angel', 'clown'] // removes 2 elements from index 3
removed = myFish.splice(3, Number.MAX_VALUE);
// myFish is ['parrot', 'anemone', 'blue']
// removed is ['trumpet', 'surgeon']

Array.prototype.slice && Array.prototype.splice 用法阐述的更多相关文章

  1. slice,Array.prototype.slice,Array.protyotype.slice.call

    slice 特点:基于当前数组中的一或多个项创建一个新数组.[原数组不会被修改] 返回结果:返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象. 语法: arr.slice() ...

  2. Array.prototype.slice用法详解

    slice方法是定义在js数组原型中的方法,用于截取数组的部分元素,具体使用如下: arrayExample.slice(start, end); start为起始元素位置,end为截止元素位置,如: ...

  3. 详解go语言的array和slice 【二】

    上一篇已经讲解过,array和slice的一些基本用法,使用array和slice时需要注意的地方,特别是slice需要注意的地方比较多.上一篇的最后讲解到创建新的slice时使用第三个索引来限制sl ...

  4. javascript中 Array.prototype.slice的用法.

    首先看到 www.w3school.cn上的解释:http://www.w3school.com.cn/jsref/jsref_slice_array.asp 定义和用法 slice() 方法可从已有 ...

  5. Array.prototype.slice()的用法

    我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js ...

  6. 【javascript 技巧】Array.prototype.slice的妙用

    Array.prototype.slice的妙用 开门见山,关于Array 的slice的用法可以参考这里 http://www.w3school.com.cn/js/jsref_slice_arra ...

  7. (转)Array.prototype.slice.call自解

    很多框架或者库里面都会有这句的使用,最多的还是通过Array.prototype.slice.call(arguments,0)把arguments这个伪数组转换为真正的数组.但为什么可以这么做,却一 ...

  8. 详解 Array.prototype.slice.call(arguments)

    首先,slice有两个用法,一个是String.slice,一个是Array.slice,第一个返回的是字符串,第二个返回的是数组 在这里我们看第二个方法 1.在JS里Array是一个类 slice是 ...

  9. Array.prototype.slice.call(arguments) 类数组转成真正的数组

    Array.prototype.slice.call(arguments)   我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数 ...

随机推荐

  1. 前端CSS参考阅读

    CSS 2.2 W3标准 http://dev.w3.org/csswg/css2/ CSS2 中文翻译 http://files.cnblogs.com/files/mize/CSS2_Chines ...

  2. UnrealEngine4 PBR Shading Model 概述

      虽然是概述,但内容并还是有些多,写上一篇PBR概念概述后,也在考虑怎么继续下去,最后还是觉得先多写一些东西再慢慢总结,所以还是尽量把这些年PBR相关的Paper精粹沉淀下来吧.     因为UE4 ...

  3. mysql varchar类型使用心得

    自己的一个例子,在存储一个email的需求中.mysql定义的字段,类型:varchar 长度:20 当我插入一个email:huangyuande@sailvan.com  发现怎么样都差不进去.. ...

  4. debug和release转载

    Debug和Release区别 转自草原和大树 VC下Debug和Release区别 最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下 ...

  5. /etc/hosts.conf

    一 作用       指定如何解析主机域名.可设置网络安全. 二 参数说明      默认情况,/etc/hosts.conf 文件有如下内容——      order hosts,bind     ...

  6. 不遗留问题-menu数据拼装

    DROP TABLE IF EXISTS `menu0910`; CREATE TABLE `menu0910` ( `id` ) NOT NULL AUTO_INCREMENT, `menu` ) ...

  7. java effective 读书笔记

    java effective 读书笔记 []创建和销毁对象 静态工厂方法 就是“封装了底层 暴露出一个访问接口 ” 门面模式 多参数时 用构建器,就是用个内部类 再让内部类提供构造好的对象 枚举 si ...

  8. Python中Unicode字符串

    Python中Unicode字符串 字符串还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte ...

  9. asp.net实现关闭当前网页

    asp.net实现关闭当前网页功能:Response.Write("<script>window.close();</script>");// 会弹出询问是 ...

  10. node中定时器的“先进”用法

    var DSQ = setInterval(function(){ console.log('zzq'); },1000); setTimeout(function(){ clearInterval( ...