indexOf()找到下标
splice()删除指定下标元素,返回删除的值,原数组会改.
slice ()返回新的数组,不会修改原来数组的值
shift()删除数组中的第一个
pop()删除数组中最后一个
delete arr[1(下标)] 除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变
1\forEach
数组循环,不能用break
中断,也不能用return
返回到外层.可以用try catch抛出异常,new error()
2\for-in
可以遍历普通对象,遍历的顺序可能不是按照实际顺序,得到字符串类型的健名.
var wq ={a:'1',b:'2'}
for (var it in wq){
console.log(it) //a,b
console.log(wq[it]) //1,2
}
3\for of
不可以遍历对象,但是可以遍历对象数组. ps:还可以遍历字符串.
如何让对象可以被for of 遍历,当然是给它添加遍历器,代码如下:
Object.prototype[Symbol.iterator] = function() {
let _this = this
let index = 0
let length = Object.keys(_this).length
return {
next:() => {
let value = _this[index]
let done = (index >= length)
index++
return {value,done}
}
}
}
遍历字符串:
var a ='我是谁'
for(var item of a){
console.log(item)//我,是,谁
}
es6新增
3\Object.entries(obj)
通俗点就是 Object.entries()
可以把一个对象的键值以数组的形式遍历出来
const obj = { foo: 'bar', baz: 'abc' };
console.log(Object.entries(obj)); // [['foo', 'bar'], ['baz', 'abc']]
数组,把数据变对象
const arr = [1, 2, 3];
console.log(Object.entries(arr)); // [['0', 1], ['1', '2'], ['2', '3']]
4\Object.keys(obj)
得到健名
5\Object.values(obj)
得到健值
6/filter 筛选
7/every和some
console.log( arr.some( function( item, index, array ){
console.log( 'item=' + item + ',index='+index+',array='+array );
return item > 3;
}));
console.log( arr.every( function( item, index, array ){
console.log( 'item=' + item + ',index='+index+',array='+array );
return item > 3;
}));
some:一真即真
every:一假即假:
some一直在找符合条件的值,一旦找到,则不会继续迭代下去。
every从迭代开始,一旦有一个不符合条件,则不会继续迭代下去。
8/set 和 Array.form
set:(直接用不行,要把它放入一个数组中,返回的才是数组,或者配合array.form使用.)
let arr = [4, 1, 3, 3, 2, '2'];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [4, 1, 3, 2, "2"]
Array.form可以遍历.
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
Array.form可以去重.
// new Set 是实现数组去重,
// Array.from()把去重之后转换成数组
let arr2 = Array.from(new Set(arr));
9/sort() 排序
var a =[1,2,3]
a.sort()
是根据字母排序,a,b,c ;
1.不加回调函数则只能排下标10以内的数组
2.加了回调函数返回的是正数形参 a,b则调换位置 为负数则不调换位置(升序 a-b,降序b-a)
let array = _array.sort((a,b)=>{
return b-a //降序
})
3.加了回调函数返回的是1或者正整数,数组所有元素的位置将倒转,类似于Array.prototype.reverse()方法(reverse()方法不会返回一个新数组,只是更改原数组元素的位置)
array = array.sort(function(value1, value2){
return value1 < value2 ? -1 : 1; //返回值为0,则不变
});