ES6新语法之数组array、对象object新方法

目录

数组新方法

1.Array.from()

2.includes()

3.map()、fliter()

4.forEach() 、find()

5.some()、every() 参数

对象新方法

1.Object.is()

2.Object.assign()

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
   }           */

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值