虽然我工作不是很久,自从转了前端后,我大概的理解了,我就按我的理解讲个大概,前端和后端的区别不是很大,一个是把数据整理好以JSON或者其他方式的数据结构以一个链接的形式返回给前端。前端则是把取到的数据做数据呈现。
很多想学习前端的小伙伴一定要知道的一些js对数组的处理方法。这里单单只是对数组的处理哦~。
- 换值类型:
toString()
这个方法在后端也是经常用到的,是数据类型转换的一种方式:其中转换方式不了接的小伙伴,可以去百度查看哦,很简单的。
var fruits = ["aaa", "bbb","ccc", "ddd"];
console.log(fruits.toString()) // aaa,bbb,ccc,ddd
- 换值类型:
jion()
首次看到这个方法的时候 让我不禁联想到了SQL里面的联表查询。
可将所有数组元素结合为一个字符串。它的行为类似 toString(),但是您还可以规定分隔符
var fruits = ["aaa", "bbb","ccc", "ddd"];
console.log(fruits.jion("-")) //aaa-bbb-ccc-ddd
- 删值:
Popping()
Popping()简写成pop():默认删除数组的最后一个元素(注意:这里返回的值并不是数组,而是数组删除中被删除的元素)
var fruits = ["aaa", "bbb", "ccc", "ddd"];
var res = fruits.pop();
console.log(res) //ddd
- 增值:
push()
从尾巴处添加
var x = ['aaa','bbb','ccc']
x.push('dddd')
console.log(x) //['aaa','bbb','ccc','dddd']
通过.length属性可以得到数组的长度。push()在js中是很常用的方法
- 位移元素:
shift()
会删除首个数组元素,并把所有其他元素“位移”到更低的索引。
var fruits = ["aaa", "bbb", "ccc", "ddd"];
var x = fruits.shift();
console.log(x) //aaa
和pop 刚好相反一个尾一个首
- 增值:
unshift()
在开头向数组添加新元素,并“反向位移”旧元素
var fruits = ["aaa", "bbb", "ccc"];
var x = fruits.unshift();
console.log(x) //3
var z = fruits.unshift('ddd');
console.log(z) //4
这个方法的功能类似与length
属性
- 拼接数组:
splice()
可用于向数组添加新项,这个就比前面提到的push()
要灵活
var fruits = ["aaa", "bbb", "ccc", "ddd"];
var x = fruits.splice(2, 2, "xxx", "zzz");
var z = fruits.splice(2, 2);
console.log(fruits.splice(2, 2, "xxx", "zzz")) //["ccc", "ddd"]
console.log(x) //["xxx", "zzz"]
console.log(z) //[] 当后面没有其他参数时,就是单纯的删除,从第几个开始删除多少个
第一个参数(2)定义了应添加新元素的位置(拼接)。
第二个参数(0)定义应删除多少元素。
其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
splice() 方法返回一个包含已删除项的数组
- 合并(连接)数组:
concat()
通过合并(连接)现有数组来创建一个新数组(是一个新的数组,原有的数组都被合并了)
var myGirls = ["aaa", "bbb"];
var myBoys = ["ccc", "ddd", "xxx"];
var myChildren = myGirls.concat(myBoys);
console.log(myChildren) //["aaa", "bbb","ccc", "ddd", "xxx"]
看到这个有细心的小伙伴就会有个疑问:如果我有很多个数组合并呢?没事你也可以!只要你遵循concat()
语法就行,concat()
里面的参数最多支持两个不同的数组。如果有三个就是另外一种写法:
var myGirls = ["aaa", "bbb"];
var myBoys = ["ccc", "ddd", "xxx"];
var myman = ["ooo", "ppp", "fff"];
var myChildren = myGmyman.concat(myBoys,myGirls);
console.log(myChildren) //["ooo", "ppp", "fff", "ccc", "ddd", "xxx", "aaa", "bbb"]
- 裁剪数组:
slice()
用数组的某个片段切出新数组(也是一个新数组)
var myman = ["ooo", "ppp", "fff"];
var myChildren = myman.splice(1);
console.log(myChildren) //["ppp", "fff"]
var myman = ["ooo", "ppp", "fff"];
var myChildren = myman.splice(0,1);
console.log(myChildren) //["ooo"]
第一种情况:删除多少个,最多可删除数组的length
个如果你传的参数大于数组的length
就相当于全部删除。第二种情况:从第一个删除一个,这里的参数只能是数组的下标
- 数组排序:
sort()
将数组里的项从小到大排序(升序)
var arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort()); // ["a", "b", "c", "d"]
sort()
方法比较的是字符串,没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数
function sortNumber(a,b)
{
return a - b
}
arr = [13, 24, 51, 3];
console.log(arr.sort()); // [13, 24, 3, 51]
console.log(arr.sort(sortNumber)); // [3, 13, 24, 51](数组被改变)
- 数组排序:
reverse()
反转数组项的顺序(降序)
var arr = [13, 24, 51, 3];
console.log(arr.reverse()); //[3, 51, 24, 13]
console.log(arr); //[3, 51, 24, 13](原数组改变)
额外送一个容易理解的字符串方法。
- 判断有无:
indexOf()
es5新增的字符串方法:返回字符串中指定文本首次出现的索引(位置)
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
console.log(pos) //17
如果没有则返回-1,可用于做字符串中包含有XXX的判断。