JavaScript循环遍历的24个方法,你都知道吗

yizhihongxing

JavaScript循环遍历的24个方法攻略

在JavaScript编程中,循环遍历是非常常见的操作。以下罗列了24个JavaScript循环遍历的方法:

1. for循环

for循环是最基本、最常见、最易懂的循环遍历方法。每次循环可以使迭代变量前往下一项。

for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

2. while循环

while循环即先判断条件是否成立,再执行循环体。在while循环中,循环条件在每次循环之前被检查,并且只要条件为真,则循环将一直继续,直到条件为假才停止。

var i = 0;
while (i < arr.length) {
  console.log(arr[i]);
  i++;
}

3. do...while循环

do...while循环与while循环非常相似,不同之处在于条件判断的时间。do while 循环将会在代码块执行前先执行一次循环,然后只要条件为真,就会不断执行循环。

var i = 0;
do {
  console.log(arr[i]);
  i++;
} while (i < arr.length);

4. forEach

forEach()是专门为数组遍历开发的方法,它允许您使用回调函数作为参数对数组中的每个元素进行操作(回调函数的形参item、index和array分别代表数组元素、数组下标和数组本身)

arr.forEach(function(item, index, array) {
  console.log(item);
});

5. map

map()是专门为数组遍历及其它操作开发的方法,它可以让您对数组中的每个元素进行操作,返回新的数组,而不修改原始数组本身。

var newarr = arr.map(function(item, index, array) {
  return item * 2; //每个元素乘以2,返回新数组
});
console.log(newarr);

6. filter

filter()方法允许您按照指定条件过滤数组元素,并只返回符合条件的元素的新数组。

var newarr = arr.filter(function(item, index, array) {
  return item > 2; //返回大于2的元素
});
console.log(newarr);

7. every

every()方法检查数组的每个元素是否符合指定条件。

var isEven = function(x) {
  return x % 2 === 0; //判断是否为偶数
}
var result = arr.every(isEven);
console.log(result);

8. some

some()方法检查数组中是否至少有一个元素符合指定条件。返回真或假。

var result = arr.some(function(item, index, array) {
  return item > 2; //是否存在大于2的元素
});
console.log(result);

9. reduce

reduce()方法在数字和数组中非常有用。它对数组中的每个元素进行操作,并返回一个单一的值。

var sum = arr.reduce(function(prev, curr, index, array) {
  return prev + curr; //将所有元素求和
});
console.log(sum);

10. reduceRight

reduceRight()方法与reduce()方法相似,不同之处在于它是从右到左对数组中的元素进行操作的。

var arr = ['a', 'b', 'c', 'd'];
var concat = arr.reduceRight(function(a, b) {
  return a + b; //将数组按逆序合并为一个字符串
});
console.log(concat);

11. indexOf

indexOf()方法允许您查找数组中指定元素的位置。

var index = arr.indexOf(2);
console.log(index);

12. lastIndexOf

lastIndexOf()方法类似于indexOf(),不同之处在于它从后往前搜索元素。

var arr = [1, 2, 3, 2];
var index = arr.lastIndexOf(2);
console.log(index);

13. find

find()方法将返回数组中通过测试函数的一个元素的值。

var arr = [1, 3, 5, 9];
var result = arr.find(function(item, index, array) {
  return item % 2 === 0; //返回第一个偶数
});
console.log(result);

14. findIndex

findIndex()方法将返回数组中通过测试函数的一个元素的索引值。

var arr = [1, 3, 5, 9];
var result = arr.findIndex(function(item, index, array) {
  return item % 2 === 0; //找到第一个偶数的位置
});
console.log(result);

15. map and filter

通过结合使用map()和filter(),可以更轻松地查询和操作数组。

var arr = [1, 2, 3, 4, 5];
var newarr = arr.filter(function(item, index, array) {
    return item !== 3; //过滤掉值为3的元素
  })
  .map(function(item, index, array) {
    return item * 2; //将所有元素的值乘以2
  });
console.log(newarr);

16. for...in循环

for...in循环允许您遍历对象的所有属性(注意:不是数组),包括原型链中的所有属性。由于此循环是针对每个属性,所以循环次数可能会比预期的多,例如您需要使用if语句来防止对原型链中的属性进行操作。

for (var prop in object) {
  console.log(prop + " = " + object[prop]);
}

17. for...of循环

for...of循环是用于遍历可迭代对象的最新加入ES6标准特性。它可以以一种简单的方式遍历数组和对象。

for (var item of arr) {
  console.log(item);
}

18. Object.keys

Object.keys()是一个静态方法,它返回一个数组,其中包含指定对象的所有可枚举属性的名称。

var obj = {
  name: 'Tom',
  age: 18
};
var keys = Object.keys(obj); //返回键数组 ['name', 'age']
console.log(keys);

19. Object.getOwnPropertyNames

Object.getOwnPropertyNames(obj)返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性,但不包括Symbol值作为名称的属性)组成的数组。

var obj = {
  name: 'Tom',
  age: 18
};
var props = Object.getOwnPropertyNames(obj); //返回属性数组 ['name', 'age']
console.log(props);

20. Object.getOwnPropertySymbols

Object.getOwnPropertySymbols()方法返回一个给定对象自身的所有Symbol属性的数组。

var sym = Symbol();
var obj = {};
obj[sym] = 'hello';
var symbols = Object.getOwnPropertySymbols(obj); //返回Symbol属性数组
console.log(symbols);

21. Reflect.ownKeys

Reflect.ownKeys()方法返回一个由给定对象的所有元素(包括不可枚举属性和Symbol值作为名称的属性)组成的数组。

var sym = Symbol();
var obj = {
  name: 'Tom',
  age: 18
};
obj[sym] = 'hello';
var keys = Reflect.ownKeys(obj); //返回属性数组 ['name', 'age', Symbol()]
console.log(keys);

22. Array.from

Array.from()方法将一个类似数组的对象或迭代器转换为一个新的数组实例。

var obj = {
  0: 'a',
  1: 'b',
  2: 'c',
  length: 3
};
var arr = Array.from(obj); //返回数组 ['a', 'b', 'c']
console.log(arr);

23. Array.isArray

Array.isArray(obj)方法判断对象是否为数组。

var arr = [1, 2, 3];
var result = Array.isArray(arr); //返回真
console.log(result);

24. Array.of

Array.of()方法创建一个由参数中所有元素组成的新数组实例。

var arr = Array.of(1, 2, 3, 4); //返回数组 [1, 2, 3, 4]
console.log(arr);

示例说明

示例1:使用forEach()方法操作数组:

var arr = [1, 2, 3, 4];
arr.forEach(function(item, index, array) {
  console.log(item + '-' + index);
});

结果为:输出1-0, 2-1, 3-2, 4-3。

示例2:使用map()和filter()方法对数组进行操作:

var arr = [1, 2, 3, 4, 5];
var newarr = arr.filter(function(item, index, array) {
    return item !== 3; //过滤掉值为3的元素
  })
  .map(function(item, index, array) {
    return item * 2; //将所有元素的值乘以2
  });
console.log(newarr);

结果为:输出[2, 4, 8, 10]。

以上就是JavaScript循环遍历的24个方法攻略,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript循环遍历的24个方法,你都知道吗 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript 中使用SpreadJS导入和导出 Excel 文件的方法

    下面是详细的攻略。 JavaScript 中使用 SpreadJS 导入和导出 Excel 文件的方法 SpreadJS 是一款基于 JavaScript 的电子表格组件,支持 Excel 的导入和导出功能。本文将介绍如何使用 SpreadJS 的 API 对 Excel 文件进行导入和导出操作。 导入 Excel 文件 使用 SpreadJS 的 API …

    JavaScript 2023年6月11日
    00
  • 在JavaScript中处理时间之setMinutes()方法的使用

    在JavaScript中处理时间之setMinutes()方法的使用 在JavaScript中,我们可以使用Date对象来处理时间。其中,setMinutes()方法用于设置一个日期对象的分钟数。 setMinutes()方法的语法 dateObject.setMinutes(minutesValue[, secondsValue[, msValue]]) …

    JavaScript 2023年5月27日
    00
  • javascript Function函数理解与实战

    JavaScript Function 函数理解与实战 1. 概述 函数是 JavaScript 中的重要概念之一。它是一块代码,用于完成特定的任务。函数通常有一个名称,可以提高代码的重用率,使代码更易于维护。在 JavaScript 中,函数也是第一类对象,也就是说,它们可以作为参数传递,返回值以及保存到变量中。 2. 基本语法 2.1 函数声明 函数通常…

    JavaScript 2023年5月27日
    00
  • 你可能不知道的JavaScript的new Function()方法

    当我们需要在JavaScript中动态地创建一个函数时,可以使用new Function()方法。它的语法是: new Function([arg1,arg2,…..argn], functionBody) 其中,第一个参数是要创建的函数的参数列表,是一个逗号分隔的字符串,可选。第二个参数是函数体,是一个字符串,必填。 例如,创建一个add函数来做加法运…

    JavaScript 2023年5月27日
    00
  • js中Math之random,round,ceil,floor的用法总结

    js中Math之random,round,ceil,floor的用法总结 在JavaScript(简称JS)中,Math对象是一个内置对象,它涵盖了一系列数学函数和常数。 本篇攻略主要介绍Math对象中的 random(), round(), ceil() 和 floor() 这四个常用函数的用法。 1. random() random() 函数返回一个浮点…

    JavaScript 2023年5月27日
    00
  • JS学习之一个简易的日历控件

    下面是针对“JS学习之一个简易的日历控件”的完整攻略。 介绍 这是一篇教程,讲解如何使用JavaScript实现一个简易的日历控件。通过阅读教程,您将学会以下内容: 理解日历的基本概念和操作 创建一个日历控件的HTML结构 通过JavaScript实现控件的基本功能和逻辑 通过这个教程,您将同时学习到HTML和JavaScript的知识,提高自己的前端开发技…

    JavaScript 2023年5月27日
    00
  • JavaScript使用RegExp进行正则匹配的方法

    下面是详细讲解“JavaScript使用RegExp进行正则匹配的方法”的完整攻略。 1. 正则表达式简介 正则表达式(RegExp)是一种描述字符串规律的方法,可以用于验证、查找、替换等操作。在JavaScript中,正则表达式通过RegExp类进行定义和使用。 正则表达式由若干个字符和特殊符号组成,可以使用多种方式进行匹配和替换。下面是一些常见的正则表达…

    JavaScript 2023年6月10日
    00
  • javascript生成img标签的3种实现方法(对象、方法、html)

    以下是详细讲解“javascript生成img标签的3种实现方法(对象、方法、html)”的完整攻略。 方法一:使用JavaScript对象 var img = new Image(); img.src = ‘http://example.com/example.jpg’; document.body.appendChild(img); 上面代码首先创建一个…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部