ES5新增方法

偶尔善良 提交于 2020-01-04 09:23:17

数组方法

forEach()方法:遍历数组

语法

arr.forEach(function(value, index, array) {})

value:数组当前项的值

index:数组当前的索引

array:数组对象本身

 var arr = [1, 2, 3];
 arr.forEach(function(value, index, array) {
 console.log('每个数组元素' + value);
 console.log('每个数组元素索引号' + index);
 console.log('数组本身' + array);
 })

输出

每个数组元素1
每个数组元素索引号0
数组本身1,2,3
每个数组元素2
每个数组元素索引号1
数组本身1,2,3
每个数组元素3
每个数组元素索引号2
数组本身1,2,3

示例

var arr = [1, 2, 3];
var sum = 0;
arr.forEach(function(value, index, array) {
sum += value;
})
console.log(sum);//6

filter()方法:筛选数组

 arr.filter(function(value, index, array) {})

注意:返回一个新数组

value:数组当前项的值

index:数组当前的索引

array:数组对象本身

示例1

 var arr = [12, 66, 4, 88];
 var newArr = arr.filter(function(value, index) {
 return value >= 20;
 });
 console.log(newArr);

输出

[66, 88]

示例2

var arr = [12, 66, 4, 88, 3, 7];
var newArr = arr.filter(function(value, index) {
return value % 2 == 0;
});
console.log(newArr);

输出

[12, 66, 4, 88]

some()方法:查找数组中是否满足条件的元素

arr.some(function(value, index, array) {})

注意:

1.它返回值是布尔值,如果能查找到这个元素,就返回true,如果查找不到这个元素,就返回false

2.如果找到第一个满足条件的元素,则终止循环,不在继续查找

value:数组当前项的值

index:数组当前的索引

array:数组对象本身

var arr = [10, 30, 4];
        var flag = arr.some(function(value) {
            return value >= 20;
        })
        console.log(flag);//true

filter()方法与some()方法区别

1.filter也是查找满足条件的元素,返回是一个数组,而且是把所有满足条件的元素返回回来

2.some是查找满足条件的元素是否存在,返回的是一个布尔值,如果找到第一个满足条件的元素,则终止循环

forEach()方法、some()方法、filter()方法之间的区别

1.在forEach里面return不会终止遍历

2.在some里面遇到return true(return true说明已找到,终止遍历return false说明没找到,继续去找)会终止遍历 遍历效率更高

3.在filter里面return不会终止遍历

总结:如果查询数组中唯一的元素,用some方法更合适

数组的map方法

1、map() 方法返回一个新数组,新数组中的元素为原始数组中的每个元素调用函数处理后得到的值。

2、map() 方法按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进行检测。

注意: map() 不会改变原始数组 。

**注意:**函数的作用是对数组中的每一个元素进行处理,返回新的元素。

3.语法

map是数组的方法,有一个参数,参数是一个函数,函数中有3个参数

参数1:item必须。当前元素的值

参数2:index,可选。当前元素在数组中的索引值

参数3:arr可选。当前元素属于的数组对象

array.map(function(item,index,arr){})

 var arr=[1,2,3,4,5];
       var arr2=arr.map(function a(item,i,arr){
           item*=2;
           return item;
       });
       console.log(arr2);//[2, 4, 6, 8, 10]

数组的every()方法

语法:

array.every(function(item,index,array){})

// item:当前元素的值;

// index:当前元素的索引;

// array:当前元素的数组对象;

  // 数组中所用的值都大于10
        var ages = [32, 33, 12, 40];
        var age = ages.every(function (val, ind) {
            return val > 10;
        })
        console.log(age) // true

字符串方法

trim()方法:从一个字符串的两端删除空白字符,不会去掉中间的空格

语法

str.trim()

trim()方法并不影响原字符本身,返回的是一个新的字符串

 var str = '        andy           ';
        var str1 = str.trim();
        console.log(str1);

对象方法

1.Object.keys()用于获取对象自身所有的属性名

Object.keys(obj)

1.效果类似for…in

2.返回一个由属性名组成的数组

var obj = {
            id: 1,
            pname: '小米',
            price: 1999,
            num: 2000
        };
        var arr = Object.keys(obj);
        console.log(arr);

输出

["id", "pname", "price", "num"]

示例

var obj = {
            id: 1,
            pname: '小米',
            price: 1999,
            num: 2000
        };
        var arr = Object.keys(obj);
        arr.forEach(function(value) {
            console.log(value);
        })

输出

id
pname
price
num

2.Object.defineProperty()定义对象中新属性或修改原有的属性

语法

Object.defineProperty(obj, prop, decriptor)

obj:必需。目标对象

prop:必需。需定义或者修改的属性的名字

decriptor:必需。目标属性所拥有的特性

Object.defineProperty()第三个参数decriptor说明:以对象形式{}书写

1.value:设置属性的值,默认是undefined

2.writable:值是否重写。true|false 默认是false

3.enumerable:目标对象是否可以枚举。true|false 默认是false

4.configurable:目标属性是否可以被删除或是否可以再次修改特性 true|false 默认是false

var obj = {
            id: 1,
            pname: '小米',
            price: 1999,
            num: 2000
        };
        Object.defineProperty(obj, 'num', {
            value: 1000
        })
        console.log(obj); //{id: 1, pname: "小米", price: 1999, num: 1000}
        Object.defineProperty(obj, 'price', {
            value: 9.9
        })
        console.log(obj); //{id: 1, pname: "小米", price: 9.9, num: 1000}
        Object.defineProperty(obj, 'id', {
            //如果值为false,则不允许修改这个属性值,默认是false
            writable: false, //1
        })
        obj.id = 2;
        console.log(obj);
        Object.defineProperty(obj, 'address', {
            value: '中国山东南翔技工学校',
            //如果值为false,则不允许遍历,默认是false
            enumerable: false,
            //如果为false这个属性不可以可以被删除
            configurable: false

        })
        console.log(obj); //{id: 1, pname: "小米", price: 9.9, num: 1000, address: "中国山东南翔技工学校"}
        console.log(Object.keys(obj)); //["id", "pname", "price", "num"]
        delete obj.address;
        console.log(obj); //{id: 1, pname: "小米", price: 9.9, num: 1000, address: "中国山东南翔技工学校"}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!