JavaScript高级--- (3)ES5新方法,数组、字符串、对象

x33g5p2x  于2021-09-24 转载在 JavaScript  
字(2.2k)|赞(0)|评价(0)|浏览(526)

一、数组方法

1、forEach()方法,遍历数组元素

用法:array.forEach(function(currentValue,index,arr))

  • currentValue:数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身
  1. var arr = [1, 2, 3, 4];
  2. var sum = 0;
  3. arr.forEach(function(value, index, array) {
  4. // console.log(`${index}: ${value}`);
  5. // console.log(`数组本身: ${array}`);
  6. sum += value;
  7. })
  8. console.log(sum); //10

2、filter()方法,返回满足条件的元素

用法:array.filter(function(currentValue, index, arr))

  • filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组
  • 注意它直接返回一个新数组
  • currentValue: 数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身
  1. // filter过滤器 筛选数组元素
  2. var arr = [12, 35, 245, 22, 43];
  3. var newArr = arr.filter(function(value, index, array) {
  4. return value >= 20;
  5. })
  6. console.log(newArr); // [35, 245, 22, 43]

3、some()方法,检查数组中是否存在满足条件的元素,返回值为布尔值

用法:array.some(function(currentValue, index, arr))

  • some() 方法用于检测数组中的元素是否满足指定条件. 通俗点 查找数组中是否有满足条件的元素
  • 注意它返回值是布尔值, 如果查找到这个元素, 就返回true , 如果查找不到就返回false.
  • 如果找到第一个满足条件的元素,则终止循环. 不在继续查找.
  • currentValue: 数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身
  1. // some查找是否存在满足条件的元素,返回布尔值
  2. var arr = [10, 30, 4];
  3. var flag = arr.some(function(value, index, array) {
  4. return value >= 20;
  5. })
  6. console.log(flag); // true

二、字符串方法

1、trim方法,去取字符串左右两端的字符,默认为空格

用法:str.trim()

  • trim() 方法并不影响原字符串本身,它返回的是一个新的字符串。
  1. var str = " 234567 dfgh ";
  2. console.log(str);
  3. console.log(str.trim());

三、对象方法

1、defineProperty()方法,定义对象的新属性或修改原有的属性

用法:Object.defineProperty(obj, prop, descriptor)

  • obj:必需。目标对象
  • prop:必需。需定义或修改的属性的名字
  • descriptor:必需。目标属性所拥有的特性

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

  • value: 设置属性的值 默认为undefined
  • writable: 值是否可以重写。true | false 默认为false
  • enumerable: 目标属性是否可以被枚举。true | false 默认为 false
  • configurable: 目标属性是否可以被删除或是否可以再次修改特性 true | false 默认为false
  1. var obj = {
  2. id: 1,
  3. pname: '小米',
  4. price: 1999
  5. }
  6. // 对象增删方式(old)
  7. // obj.num = 1000;
  8. // obj.price = 100;
  9. // console.log(obj);
  10. // Object.defineProperty(obj, prop, descriptor);
  11. Object.defineProperty(obj, 'num', {
  12. value: 1000,
  13. });
  14. Object.defineProperty(obj, 'price', {
  15. value: 9.9
  16. });
  17. Object.defineProperty(obj, 'id', {
  18. writable: false // 是否允许被修改
  19. });
  20. // Object.defineProperty(obj, 'address', {
  21. // value: "中国山东",
  22. // enumerable: false //是否允许被遍历
  23. // });
  24. Object.defineProperty(obj, 'address', {
  25. // writable: false // 是否允许被修改
  26. value: "zhongguo",
  27. enumerable: false,
  28. configurable: false // 是否允许被删除,默认为FALSE,不允许被删除
  29. });
  30. obj.id = 2;
  31. console.log(obj);
  32. console.log(Object.keys(obj));
  33. delete obj.address;
  34. delete obj.pname;
  35. console.log(obj);

下一篇:JavaScript高级— (4)改变函数内部this指向的方法

相关文章