目录
3.Object.keys()、Object.values()、Object.entries()
数组新方法
1.Array.from()
Array.from()是内置对象Array的方法,实例数组不能调用
- 函数可接受3个参数(后两个参数可以没有):
- 第一个表示将被转换的可迭代对象(如果只有一个参数就是把形参转变成数组)
- 第二个是回调函数,将对每个数组元素应用该回调函数,然后返回新的值到新数组,
- 第三个是回调函数内this的指向。
let arr = [1, 2, 3]; let obj = { double(n) { return n * 2; } } console.log(Array.from(arr, function (n){ return this.double(n); }, obj)); //输出结果为 [2, 4, 6]
2.includes()
查看数组中是否存在这个元素,存在就返回true,不存在就返回false
let arr = [1,33,44,22,6,9]
console.log(arr.includes(22)) // true
console.log(arr.includes(32)) // false
3.map()、fliter()
map
方法-----要利用原数组经过运算后的数组,或者从对象数组中拿某个属性
filter
方法------是将符合挑选的筛选出来成为一个新数组,新数组不会影响旧数组
let arr = [1, 33, 44, 2, 6, 9];
let newarr1 = arr.filter((v) => v > 10); //newarr1-------[33, 44]
let newarr2 = arr.filter((v) => v * 2); //newarr2-------[1, 33, 44, 2, 6, 9]
let newarr3 = arr.map((v) => v > 10); //newarr3-------[false, true, true, false, false, false]
let newarr4 = arr.map((v) => v * 2); //newarr4-------[2, 66, 88, 4, 12, 18]
4.forEach() 、find()
forEach
方法------是循环遍历数组中的每一项,没有返回值
find
方法---------是查找数组中符合条件的第一个元素,直接将这个元素返回出来
let arr = [1,33,44,2,6,9]
let a1= []
arr.forEach((v, i)=>{
if (v > 10) {
a1.push(arr[i])
}
})
console.log(a1) // [33,44]
let a2= arr.find(v => v > 10)
console.log(a2) // 33
5.some()、every() 参数
some()
方法------找到一个符合条件的就返回true
,所有都不符合返回false(或)
every()
方法------数组所有值都符合条件才会返回true
,有一个不符合返回false(且)
let arr = [1,2,3,4,6,11]
let newarr = arr.some(function(v){
return v > 10
})
console.log(newarr) //true
let newarr2 = arr.every(function(v){
return v > 10
})
console.log(newarr2) //false
对象新方法
1.Object.is()
Object.is()
方法用来判断两个值是否为同一个值,返回一个布尔值。
如果下列任何一项成立,则两个值相同:
两个值都是 undefined、null、NaN、 true 或者 false
两个值指向同一个对象
两个值都是数字并且都是正零 +0或都是负零 -0
都是除零和 NaN 外的其它同一个数字
Object.is('foo', 'foo'); // true
Object.is(window, window); // true
Object.is('foo', 'bar'); // false
Object.is([], []); // false
var foo = { a: 1 };
var bar = { a: 1 };
Object.is(foo, foo); // true
Object.is(foo, bar); // false
Object.is(null, null); // true
// 特例
Object.is(0, -0); // false
Object.is(+0, -0); // false
Object.is(0, +0); // true
Object.is(-0, -0); // true
Object.is(NaN, 0/0); // true
NaN == NaN // false
2.Object.assign()
用于将所有可枚举属性的值从一个或多个源对象分配到目标对象,并返回目标对象。
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const obj3 = { a:5 , c: 3 };
//对象合并,把后面对像合并到第一个对象,对象里相同的属性会覆盖
Object.assign(obj1, obj2, obj3);
console.log(obj1); // { a: 5, b: 2 , c:3}
3.Object.keys()、Object.values()、Object.entries()
- Object.keys() 返回对象所有属性名
- Object.values() 返回对象所有属性值
- Object.entries() 返回多个数组,每个数组内部是 key–value
let person = { name: "admin", age: 12, language: ["java", "js", "css"], }; console.log(Object.keys(person)); //[ 'name', 'age', 'language' ] console.log(Object.values(person)); //[ 'admin', 12, [ 'java', 'js', 'css' ] ] console.log(Object.entries(person)); /* [ ["name", "admin"], ["age", 12], ["language", ["java", "js", "css"]], ]; */
对象声明简写
let name ='admin'
let age = 20
let person={
name,
age
}
//es6之前
/* let person={
name:name,
age:age
} */