JS(slice,splice,split,substring,substr)小记

编程语言学多了,难免会有各种定义混淆的时候,尤其是对于一系列函数名相近的方法。

JS中对于数组和字符串的操作,博主使用slice,splice,split,substring,substr常常都需要从新查找一下再使用,今天就尝试将它做个小结,巩固下记忆。

1.Array.slice(startIndex,endIndex)

String.slice(startIndex,endIndex)
[starIndex,endIndex)


从索引为1的元素开始取,取到索引为三的元素,并不包含索引为三的这个元素 所以实际取到的索引位置为endIndex - 1;

var array = [0,1,2,3,4,5,6,7];

var str = "Hello World, Hello Kingsley, Hello JavaScript !";

var arr = array.slice(1,3);// arr = [1,2];

var subStr = str.slice(6,11);//subStr = "World";

从第三个元素开始往后取出剩余的所有元素

var array = [0,1,2,3,4,5,6,7];

var str = "Hello World, Hello Kingsley, Hello JavaScript !";

var arr = array.slice(3);//arr = [3,4,5,6,7];

var subStr = str.slice(6);//subStr = "World, Hello Kingsley, Hello JavaScript !";

大于数组/字符串长度,返回空

var array = [0,1,2,3,4,5,6,7];

var str = "Hello World, Hello Kingsley, Hello JavaScript !";

var arr = array.slice(10);//arr = [];

var subStr = str.slice(100);//subStr = "";

负值情况下 将这个元素与数组/字符串长度length相加,得出的正值(小于数组/字符串长度)为起始索引 并从起始索引开始取出剩下的所有元素

var array = [0,1,2,3,4,5,6,7];

var str = "Hello World, Hello Kingsley, Hello JavaScript !";

var arr = array.slice(-6);//arr =[2,3,4,5,6,7];

var subStr = str.slice(-5);//subStr = "ipt !";

负值情况下 大于数组/字符串长度,则返回整个数组

var array = [0,1,2,3,4,5,6,7];

var str = "Hello World, Hello Kingsley, Hello JavaScript !";

var arr = array.slice(-10);//arr =[0,1,2,3,4,5,6,7];

var subStr = str.slice(-100);//subStr = "Hello World, Hello Kingsley, Hello JavaScript !";

Array.prototype.slice.call(arguments)
arguments 是一个类数组对象,使用Array.prototype.slice.call(arguments)
将参数分开返回为数组
一个累加的函数

function add(){

	var args = Array.prototype.slice.call(arguments);

	var fn = function(){
		var args_fn = Array.prototype.slice.call(arguments);

		return add.apply(null,args.concat(args_fn));
	}

	fn.toString = function(){
		return args.reduce(function(a,b){
			return a+b;
		})
	}

	return fn;
}
alert(add(1));//1
alert(add(1,2)(3));//6
alert(add(1,3)(4,3)(5));//16

2.splice(startIndex,deleteCount,item,item...)


从指定的位置删除几个元素,同时将需要的元素插入,并返回包含被删除的元素的新数组。

var person =["Kingsley","Clara","Sally","Jobs"];

var arr = person.splice(1,2,"Jimmy","Paul");

alert(person);//person = [Kingsley,Jimmy,Paul,Jobs];
alert(arr);//arr = [Clara,Sally];

从第一个元素往后取出所有元素,并返回新数组,同时源数组改变。

var person =["Kingsley","Clara","Sally","Jobs"];

var arr = person.splice(1);

alert(person);//person = [Kingsley];
alert(arr);//arr = ["Clara","Sally","Jobs"];

负数情况,且大于数组length,返回源数组整个数组成新数组,同时源数组改变

var person =["Kingsley","Clara","Sally","Jobs"];

var arr = person.splice(-5);

alert(person);//person = [];
alert(arr);//arr = ["Kingsley","Clara","Sally","Jobs"];

将这个数与数组长度length相加,得出的值为起始索引 并从起始索引开始取出剩下的所有元素。

var person =["Kingsley","Clara","Sally","Jobs"];

var arr = person.splice(-1);

alert(person);//person = [Kingsley,Clara,Sally];
alert(arr);//arr = ["Jobs"];

大于数组长度 返回空

var person =["Kingsley","Clara","Sally","Jobs"];

var arr = person.splice(10);

alert(person);//person = ["Kingsley","Clara","Sally","Jobs"];
alert(arr);//arr = [];

3.String.splict(separator,limit)

以标识符分割并返回包含元素的数组

var str = "abcdefg";

var subStrArr = str.split("",3);

alert(subStrArr);//subStrArr = [a,b,c];

不作限制,则返回所有符合元素

var str = "abcdefg";

var subStrArr = str.split("");

alert(subStrArr);//subStrArr = [a,b,c,d,e,f,g];

4.String.substring(startIndex,endIndex)

[startIndex,endIndex)

var str = "abcdefg";

var subStr = str.substring(1,3);

alert(subStr);//subStr = "bc";


5.String.substr(startIndex,length)

var str = "abcdefg";

var subStr = str.substr(1,3);

alert(subStr);//subStr = "bcd";

小生才疏学浅,如有不对的地方,请各位客官指出,共同学习!


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值