ES6的Object的遍历
1、获取对象的key
Object.keys方法,返回一个数组。成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名
2、获取对象的value
Object.values()方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值。Object.values()会过滤属性名为Symbol值的属性。
会发现 顺序不同!因为顺序遵循属性的遍历的规则
如果Object.values()方法的参数是一个字符串,会返回各个字符组成的一个数组。
上面代码中,字符串会先转成一个类似数组的对象。字符串的每个字符,就是该对象的一个属性。因此,Object.values返回每个属性的键值,就是各个字符组成的一个数组。
3、拿到对象的键值对
Object.entries()
4、自己实现Object.entries()
let myEntries = (obj) => { let objType = typeof (obj); if (obj === undefined || obj === null) { throw new TypeError(); } if (objType === 'number' || objType === 'boolean') { return [] }; let ans = [] if (objType === 'object') { for (let key of Object.keys(obj)) { ans.push([key, obj[key]]); } } return ans; } let objDemo = { name: 'zhangsan', age: 18, sex: 'woman' } console.log(myEntries(objDemo));
ES6中切割字符串的和数组方法
1、substring(只能操作字符串)
substring(start,stop)表示返回从start开始到stop处之间的新字符串,其长度为stop减 start。包含start,但不包含stop,且不修改原字符串。
如果 start比stop大,那么方法在执行前会先交换这两个参数。
如果 start与stop相等
如果 start或stop为负数,那么方法在执行前会先将负数变为0。
2、substr(只能操作字符串)
substr(start,length)表示返回从start开始包含length长度的新字符串,包含start,且不修改原字符串
与substring相比,第二个参数由代表结束的下标stop变成了规定新字符串长度的length
如果length不填,那表示从start截取到字符串结尾
如果start为负数,那么start=str.length+start
如果length为负数或者0,那么返回空字符串
3、slice()(可操作数组和字符串)
slice(start,stop)表示截取从下标start 到下标stop(不包括该元素)的之间的元素,并返回新数组/新字符串
如果stop不填,那表示从start截取到数组结尾/字符串结尾
start比stop大(不会互换),或start与stop相等,则截取的为空
start或者stop为负数,那么负数的选项从数组尾部开始算起的位置,最后一个数字为-1,倒数第二个数字为-2
4、splice() (只能操作数组)
splice(start,length,items)表示从下标start处截取length长度(与substr有点像)的元素后,在start处为原数组添加items,并返回被截取的新数组,splice会直接修改原数组,例如:
其中start和length为必填项,items为选填项,如果length为0或者负数,则返回空数组
如果start为负数,则原理和slice负数从右往左截取,最后一位数字为-1,倒数第二位为-2