金沙棋牌官方平台

当前位置:金沙棋牌 > 金沙棋牌官方平台 > JavaScript数组的快速克隆,数组操作实用技巧

JavaScript数组的快速克隆,数组操作实用技巧

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-09-07 18:52

第二个排序的方法确实很巧妙,这样就不用自己写洗牌算法了 ^^

5、reverse方法 [作用] 把数组中的元素排列次序颠倒过来。
[语法] arrayObj.reverse()
[实例]金沙棋牌官方平台,

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

3. 搜索:
用sort()来玩搜索还蛮新鲜的,呵呵,看看是怎么玩的吧。
我现在要把数组里含有字母'a'的元素全部找出来,如果没有sort(),似乎只能用遍历了,遍历的效率…那个叫恐怖啊!!具体做法如下:

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

slice()原来是用来截取数组中的一部分,这里我用它来复制数组,它的格式如下:
array.slice(start, end)
如果省略了end参数,则切分的数组包含从start开始到数组结束的所有元素。 

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

前两天想要对一个数组进行复制,一直苦于找不到办法(遍历的方法俺是绝对...

9、toString方法
[作用] 使用率非常高的方法,直接将数组类型对象转换成字符串类型对象。
[语法] arrayObj.toString()
[实例]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

所有这些功能,用一个sort()就可以完成了。

7、sort方法 [作用] 用来对数组元素进行排序。
[语法] arrayObj.sort(sortRule())。参数可选,代表排序的方法。特别说明,sort排序有几个基本原则,第一,默认按照字母顺序排列;第二,大写字母排在小写字母之前。基与此,对于数字排序,需要自己写排序方法。
[实例]

4、push、unshift方法 [作用] 向数组的末尾添加一个或多个元素并且返回新的长度。同时,数组的长度将会被改变,与之相对应的是unshift方法。注意,方法的返回值并不是新的数组,而是新数组的长度。
[语法] arrayObj.push|unshift(ele1,ele2,ele3,...)
[实例]

只要传递一个比较函数给sort就可以了,如果比较函数的值小于0,则表示a必须出现在b前面,否则在b后面。
2. 乱序:
让比较函数随机传回-1或1就可以了:

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

注意:新的字符串是原数组连接而成,但是中间有“,”分隔,如想去掉“,”,可以这样写:

至于第三个嘛...如果不用正则,一定要用Sort的话,一样是写起来简单很多,不过效率可能不见得比遍历高,要知道遍历并不意味着效率低,线性表单向搜索的遍历算法是O(N)复杂度的,Js的sort我猜用得是q-sort算法(如果用冒泡的话那就太寒酸了吧^^),所以起码是O(N*LogN)复杂度的(排序比搜索复杂也很容易理解),也就是说执行效率上用Sort匹配基本上肯定是要不如用直接的遍历来得快的。
数组拷贝我习惯用concat。如: newArr = oldArr.concat(),效率和slice(0)一样。

注意:新的字符串是原数组连接而成,但是中间有“,”分隔,如想去掉“,”,可以这样写:

3、pop、shift方法 [作用] pop方法删除和返回数组中最后一个元素,同时,数组的长度发生变化。与之相对的是shift()方法,删除和返回数组第一个元素。
[语法] arrayObj.pop|shift()
[实例]

无意中拿起《JavaScript权威指南》翻了翻数组的操作函数,发现了slice()函数。

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

9、toString方法
[作用] 使用率非常高的方法,直接将数组类型对象转换成字符串类型对象。
[语法] arrayObj.toString()
[实例]

1. 排序:
默认的sort()按字符编码排序的:

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

5、reverse方法 [作用] 把数组中的元素排列次序颠倒过来。
[语法] arrayObj.reverse()
[实例]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

7、sort方法 [作用] 用来对数组元素进行排序。
[语法] arrayObj.sort(sortRule())。参数可选,代表排序的方法。特别说明,sort排序有几个基本原则,第一,默认按照字母顺序排列;第二,大写字母排在小写字母之前。基与此,对于数字排序,需要自己写排序方法。
[实例]

我测试过,slice或concat拷贝数组要比遍历快得多。
测试过程中我还发现另外一个特点,一个数组通过下标取值时,似乎也是通过类似遍历的的方法取值的。比方说数组arr有100万个数组元素,那么这两个表达式:i = arr[0] 和  i = arr[999999] 相比,前者会更快的取到值!(如果不信可以自己去编个相关例子试试看)。也就是说当遍历数组时,每次取值的所需时间会随着下标值的增加而增大。

1、concat方法 [作用] 将多个数组联合起来,这个方法不会改变现存的数组,它只返回了所结合数组的一份拷贝。
[语法] arrayObj.concat(array1,array2,...)
[实例]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

现在要让它按照数值大小排序:

3、pop、shift方法 [作用] pop方法删除和返回数组中最后一个元素,同时,数组的长度发生变化。与之相对的是shift()方法,删除和返回数组第一个元素。
[语法] arrayObj.pop|shift()
[实例]

8、splice方法
[作用] 向数组删除并加入新的元素。
[语法] arrayObj.splice(index,number,ele1,ele2...)。index为索引位置,必须为数字,代表从哪个位置插入或者删除元素。number,代表从index位置往后删除的元素个数,如果为“0”则表示在index插入新元素,不删除往后的数组元素。(说得太混了~~~直接看代码实例)
[实例]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

6、slice方法 [作用] 可将现存数组中选种的元素返回。
[语法] arrayObj.slice(startposition,endposition),第一个参数为必选,第二个为可选,如不写,则默认为从startposition到最后一个元素。注意,包含startposition这个位置的元素,而不包括endposition。
[实例]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

这样就把数组中含有字母'a'的元素全部放到数组前面啦,再经过一些简单的处理,就可以输出搜索结果了。
用slice来拷贝数组的确是一个很好的方法,而且实际上用得也会比较多,不过效率和遍历相比很难说优劣,因为我们谁也不知道js的slice是怎么实现的,不过推测起来应该要高效一些,更重要的是写起来简单多了。

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

现在要用它来复制数组,就一行,呵呵:
var newArray=oldArray.slice(0); 

8、splice方法
[作用] 向数组删除并加入新的元素。
[语法] arrayObj.splice(index,number,ele1,ele2...)。index为索引位置,必须为数字,代表从哪个位置插入或者删除元素。number,代表从index位置往后删除的元素个数,如果为“0”则表示在index插入新元素,不删除往后的数组元素。(说得太混了~~~直接看代码实例)
[实例]

2、join方法, [作用] 将原有数组对象转换成1个字符串,可以用指定分隔符进行串联。
[语法] arrayObj.join(separator),separator为分隔符,默认为“,”。
[实例]

JavaScript中对变量的操作都是通过引用方式,而对数组也一样。
前两天想要对一个数组进行复制,一直苦于找不到办法(遍历的方法俺是绝对不采用的)

[作用] 将多个数组联合起来,这个方法不会改变现存的数组,它只返回了所结合数组的一份拷贝。 [语法] arrayObj.concat(array1,a...

1、concat方法 [作用] 将多个数组联合起来,这个方法不会改变现存的数组,它只返回了所结合数组的一份拷贝。
[语法] arrayObj.concat(array1,array2,...)
[实例]

2、join方法, [作用] 将原有数组对象转换成1个字符串,可以用指定分隔符进行串联。
[语法] arrayObj.join(separator),separator为分隔符,默认为“,”。
[实例]

6、slice方法 [作用] 可将现存数组中选种的元素返回。
[语法] arrayObj.slice(startposition,endposition),第一个参数为必选,第二个为可选,如不写,则默认为从startposition到最后一个元素。注意,包含startposition这个位置的元素,而不包括endposition。
[实例]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

4、push、unshift方法 [作用] 向数组的末尾添加一个或多个元素并且返回新的长度。同时,数组的长度将会被改变,与之相对应的是unshift方法。注意,方法的返回值并不是新的数组,而是新数组的长度。
[语法] arrayObj.push|unshift(ele1,ele2,ele3,...)
[实例]

您可能感兴趣的文章:

  • JavaScript程序员应该知道的45个实用技巧
  • javascript 容错处理代码(屏蔽js错误)
  • 判断滚动条到底部的JS代码
  • js监听滚动条滚动事件使得某个标签内容始终位于同一位置
  • js跟随滚动条滚动浮动代码
  • js操作滚动条事件实例
  • js实现按钮加背景图片常用方法
  • js实现网页随机切换背景图片的方法
  • 使用js操作css实现js改变背景图片示例
  • 纯js实现背景图片切换效果代码
  • javascript ImgBox透明遮罩层背景图片展示
  • JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)

本文由金沙棋牌发布于金沙棋牌官方平台,转载请注明出处:JavaScript数组的快速克隆,数组操作实用技巧

关键词:

上一篇:金沙棋牌官方平台操作select控件大全

下一篇:没有了