splice?slice?split?join?Are you clear()?

常常记不清slice和splice的功能和特点,索性一口气把这四个相关的都记上:

// slice 切片
/*
array.slice(start,end)
string.slice(start,end)
特点:此操作会形成新的对象,不影响原对象的值
取值不包含第二位索引对应值
*/
var arr = [1,2,3,4,5,6];
var a = arr.slice();        //[ 1, 2, 3, 4, 5, 6 ]
var b = arr.slice(1,2);     //[ 2 ]
var c = arr.slice(-3);      //[ 4, 5, 6 ]
var d = arr.slice(-7);      //[ 1, 2, 3, 4, 5, 6 ]
var e = arr.slice(6);       //[]
// 综上所述,slice的作用原理如下
/* 假定数组长度为6
index      -6  -5  -4  -3  -2  -1
            0   1   2   3   4   5
value       1   2   3   4   5   6
第一位参数只要>=arr.length,则返回空;
第一位参数<-arr.length,则返回这个数组
*/


// splice 拼接
/*
arr.splice(start, count, context)
只作用于数组,并会修改原数组值
count=0时,相当于insert
*/
var months = ['Jan', 'March', 'April', 'June'];
months.splice();                // noChange [ 'Jan', 'March', 'April', 'June' ]
months.splice(1, 0, 'Feb');     //[ 'Jan', 'Feb', 'March', 'April', 'June' ]
months.splice(1);               //[ 'Jan' ]
months.splice(0, 1);            //[ 'Feb', 'March', 'April', 'June' ]建立在31行基础上
months.splice(-4, 1);           //[ 'March', 'April', 'June' ]建立在33行基础上
months.splice(-5);              // []


//split 分割   string=>array
/*
str.split([separator[, limit]])
特点:返回值是一个array,separator用来规定分割规则,limit限制返回的分割元素数量
*/
//如果 separator 包含捕获括号(),则其匹配结果将会包含在返回的数组中
var str = "Hello 1 word. Sentence number 2.";
var splits = str.split(/(\d)/,2);       //[ 'Hello ', '1' ]
// console.log(splits);


var names = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ";

//(?:;|$)匹配分号或行尾,?:表示取消反向引用
var re = /\s*(?:;|$)\s*/;               //['Harry Trump','Fred Barney','Helen Rigby','Bill Abel','Chris Hand','']
var re1 = /\s*(?:;)\s*/;                //['Harry Trump','Fred Barney','Helen Rigby','Bill Abel','Chris Hand']


//join 连接  array=>string
/*
arr.join([separator])
特点:亦可连接类数组
*/
var a = ['Wind', 'Rain', 'Fire'];
a.join();                  // "Wind,Rain,Fire"
a.join(', ');              // "Wind, Rain, Fire"
a.join(' + ');             // "Wind + Rain + Fire"
a.join('');                // "WindRainFire"

部分用例参考MDN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值