这三个函数最早在Vue,js 文档中看到使用, split(), reverse(),join()
之前虽说对这三个函数有个了解,但是一连串的使用的时候看的我还是一点蒙蔽,故写下此博客
split(’ ‘)是与join (’ ')完全相反两个方法, 一个是一个是添加,一个是去除
在这里就是完全镜像的意思,
所以这个颠倒函数十分有意思的
首先 splice();
:
该方法可以通过指定起始索引和数据个数的方式,删除或替换数组中的部分 数据. 该方法返回的值被删除的或替换的数据. 这与slice();
的一个比较大的差别;
var a=[1,3,2,5];
var result1=a.splice(1,2 ,9,0);
console.log(a);
console.log(result1);
结果:
[ 1, 9, 0, 5 ]
[ 3, 2 ]
可见splice();
会影响原数组,并将添加的元素放入原数组中; 重新赋值的splice('')
变量将裁减的对象 会放新的数组; (splice, 原数组会发生变化, 并将裁减的数组分离成一个新的数组)
join();
就是把所有的元素放在一个新的字符串中; 对原数组不产生影响;
还得强调一下join() 会生成的是一个字符串
var a=[1,3,2,5];
var result=a.join(" ");
console.log(a);
console.log(result); //把数组所有元素放入一个字符串中,但不影响原数组的;
结果:
[ 1, 3, 2, 5 ]
1 3 2 5
reverse();
可以将数组的元素颠倒过来;, 值得注意的是该方法会改变的是原来的数组,并不会创建一个新的数组;
var a=[1,3,2,5];
console.log(a);
console.log(a.reverse());
console.log(a);
结果:
[ 1, 3, 2, 5 ]
[ 5, 2, 3, 1 ]
[ 5, 2, 3, 1 ]
这里还值得一提的是: 除了reverse(), 倒叙排列之外, 还有一个默认的方法是: sort()
,
但是sort直接使用的时候回将数组的值默认使用一次 toString(),的方法
var values = [0, 1, 5, 10, 15];
values.sort(); // (x,y)=>x-y 升序排列
console.log(values); //0,1,10,15,5
sort() 还可以根据自己的意愿达到排序的目的
三者的综合使用;
var a=[1,3,2,5];
//var result=a.join(" ");
var result1=a.splice(" ");
console.log(a);
console.log(result1.reverse().join(' '));
结果:
[]
5 2 3 1
由此可见使用splice(" ")
,原数组会变成一个空数组,有会生成一个与之相关的数组(可以说一使用数据就全部发生改变了)
而slice()
不会对原数组产生影响,直接生成一个新的数组;
slice();
var a=[1,3,2,5,7];
// var b=[6,7]
// var result=a.join(" ");
var result2=a.slice(2,3);
console.log(result2);
console.log(a);
结果
[ 2 ]
[ 1, 3, 2, 5, 7 ]
补充:
使用sort实现一些个人需要的排序
- 将数据按年龄排序
let arr1=[
{name:'刘备',age:59},
{name:'张飞',age:54},
{name:'关羽',age:56},
]
function compare(val){
return function(a,b){
let n1=a[val]
let n2=b[val]
return n1-n2
}
}
arr1.sort(compare('age')).reverse() //达到了按年龄排序(有数字的才可以)
console.log(arr1);
如果数据的格式不满足排序的要求, 可以在将数据构造成希望的数据格式在进行数据的要求排序