记几个自己常混淆的方法

2018-04-28  本文已影响0人  shanshanfei
Array.splice(index, deletemItemCount, someItemWillInsert);
//集删除、添加于一体的数组操作函数

Array.slice(start, end);
//可以是负数,表示倒着数,-1表示倒数第一个值,且 start 要小于等于 end。

String.slice(start, end);//同上 

String.substr(start, length);//函数名小写 ,start可以是负数

String.substring(start, end);
//小写,两个参数都不接受负数,
//返回从start到不包含end的字符串,如果start大于end 会自动交换位置



============
js数组遍历常用方法:
[...].some(v => v > 10); 只要数组中的一项满足条件即返回 true
[...].every(v => v > 10); 数组中的每一项都满足条件即返回 true
[...].forEach(v => {...some operation}); 遍历数组进行一些操作 无法break中断循环
[...].map(v => v*2); 对数组每一项进行操作 返回值组成新的数组
[...].filter(v => v>2); 对数组每一项进行判断 满足条件的值组成新的数组
[...].reduce((preVal, curVal) => preVal+curVal); 从左到右对数组累计求值
[...].reduceRight((preVal, curVal) => preVal+curVal); 从右到左对数组累计求值



============
for...in for...of区别:
都可以遍历数组和对象,但是会存在一些问题
1、for...in是ES5的用法,for...of是ES6的用法
2、for...in一般用来遍历对象,for...of一般用来遍历数组
3、for...in遍历出来的是key,for...of遍历出来的是value
4、for...in会把原型上的属性和方法也遍历出来,for...of只会遍历自身值
5、for...of可以配合break、return、continue一起使用

见实例:
Array.prototype.method = function(){}
var arr = [4, 5, 6];
arr.name = 'hello'

for(var index in arr){
    console.log(index);//0 1 2 method name 
    //原型属性、以及自定义的属性都会遍历出来 所以for...in适合遍历对象 
    //结合Object.hasOwnProperty来判断是否是实例属性
}

for(var value of arr){
    console.log(value);//4, 5, 6 只返回值
}

var obj = {a: 1, b: 2};
for(var key of Object.keys(obj)){
    console.log(obj[key]);//借助于 Object.keys在使用for...of即可实现对象的遍历
}
上一篇下一篇

猜你喜欢

热点阅读