首页 > 编程语言 >常见的JavaScript的循环处理数据方法

常见的JavaScript的循环处理数据方法

时间:2022-10-24 18:12:01浏览次数:80  
标签:arr 常见 console JavaScript while 循环 let 循环体

1. for 循环

let arr = [1,2,3];

for (let i=0; i<arr.length; i++){

 console.log(i,arr[i])

}

// 0 1    // 1 2   // 2 3

2.for in 循环

let obj = {name:'zhou',age:'**'}

for(let i in obj){

 console.log(i,obj[i])

}

// name zhou   // age **

for in 循环主要用于遍历普通对象,i 代表对象的 key 值,obj[i] 代表对应的 value。

3.while 循环

cars=["BMW","Volvo","Saab","Ford"];

var i=0;

while (cars[i])

{

console.log(cars[i] + "<br>")

i++;

};

4. do while 循环

let i = 3;

do{

 console.log(i)

 i--;

}while(i>0)

// 3   // 2  // 1

5. Array forEach 循环

let arr = [1,2,3];

arr.forEach(function(i,index){

  console.log(i,index)

})

// 1 0   // 2 1   // 3 2

6. Array map()方法

let arr = [1,2,3];

let tt = arr.map(function(i){

 console.log(i)

 return i*2;

})   // [2,4,6]

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

注意:map 和 forEach 方法都是只能用来遍历数组,不能用来遍历普通对象。

map: 一定遍历全部数据,不能通过return结束,消耗性能,不要常用。
常用于转换数据结构,比forEach快。

7. Array filter()

let arr = [1,2,3];

let tt = arr.filter(function(i){

  return i>1;

})   // [2,3]

filter 方法是 Array 对象内置方法,它会返回通过过滤的元素,不改变原来的数组。

8、Array some() 方法

let arr = [1,2,3];

let tt = arr.some(function(i){

  return i>1;

})     // true

some() 方法用于检测数组中的元素是否满足指定条件(函数提供), 返回 boolean 值,不改变原数组。

注意:some() 中只要有一项满足条件则返回 true

9、Array every() 方法

let arr = [1,2,3];

let tt = arr.every(function(i){

  return i>1;

})    // false

every() 方法用于检测数组中的元素是否满足指定条件(函数提供), 返回 boolean 值,不改变原数组。

注意:every() 中所有项满足条件 才会返回 true

10、Array reduce()方法

let arr = [1,2,3];

let ad = arr.reduce(function(i,j){

  return i+j;

})// 6

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

11、Array reduceRight()方法

let arr = [1,2,3];

let ad = arr.reduceRight(function(i,j){

  return i+j;

})

// 6

reduceRight()方法,和 reduce() 功能是一样的,它是从数组的末尾处向前开始计算。

 

12. for of 循环

let arr = ['name','age'];

for(let i of arr){

  console.log(i)

}

// name

// age

for of 循环是 Es6 中新增的语句,用来替代 for in 和 forEach,它允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代(Iterable data)的数据结构,注意它的兼容性。

 

while和do–while循环的主要区别如下:

1、循环结构的表达式不同

while循环结构的表达式为:while(表达式){循环体}。

do-while循环结构表达式为:do{循环体;}while (条件表达);。

 

2、执行时判断方式不同

while循环执行时只有当满足条件时才会进入循环,进入循环后,执行完循环体内全部语句至当条件不满足时,再跳出循环。

do-while循环将先运行一次,在经过第一次do循环后,执行完一次后检查条件表达式的值是否成立,其值为不成立时而会退出循环。

3、执行次数不同

while循环是先判断后执行,如果判断条件不成立可以不执行中间循环体。

do-while循环是先执行后判断,执行次数至少为一次,执行一次后判断条件是否成立,如果不成立跳出循环,成立则继续运行循环体。

4、执行末尾循环体的顺序不同

while循环的末尾循环体也是在中间循环体里,并在中间循环体中执行,循环体是否继续运行的条件也在循环体中。

do-while循环是在中间循环体中加入末尾循环体,并在执行中间循环体时执行末尾循环体,循环体是否继续运行的条件在末尾循环体里。

 

7、find和findindex是 查找,find 找到一个就返回 符合条件的数据,findIndex找到一个返回符合条件的下标,find找不到返回undefined,findindex找不到返回-1。

const Arr=[1,2,3];

let num=Arr.find((x)=> x > 2);

console.log(num);  // 3

const Arr=[1,2,3];

let num=Arr.findIndex((x)=> x > 2);

console.log(num); // 2

1. reduce

作用:对数组进行迭代,然后两两进行操作,最后返回一个值
返回值:return出来的结果
是否改变原有数组:否

var arr = [1,2,3]var ret = arr.reduce(function(a,b){

    return a*b;})

console.log(ret);// 6

console.log(arr)// [1,2,3]

2. reduceRight

作用:对数组进行迭代,然后两两进行操作,
从右往左对数组的元素进行两两操作,把每次操作的结果当做下次比较的前者,重复这样的操作,直到最后返回一个值
返回值:return出来的结果
是否改变原有数组:否

var arr = [1,2,6]var ret = arr.reduce(function(a,b){

    return a*b;})

console.log(ret);// 12

console.log(arr) // [1,2,3]

Let和var的区别:

1,var是最近的函数作用域,let的作用域是最接近的块作用域,这个比函数的作用域要小。

2、当他们是全局变量时,let和var是相同的。当他们处在一个函数内,也是相同的。

3.var定义以后可以修改,不初始化会输出undefined,不会报错。let未定义就输出则会报错直接报错:ReferenceError: letTest is not defined

4、如果在函数的for里面定义,let只在这个for里面有效。var是在整个函数里面有效

5、重复声明一个变量时。var会覆盖上一个变量的赋值,而let则会报错你已经定义过了。

标签:arr,常见,console,JavaScript,while,循环,let,循环体
From: https://www.cnblogs.com/yjung/p/js.html

相关文章

  • 面试 个人摸底监测 考察JavaScript基础 (第三天)
    01,如何开启JS严格模式?JS严格模式有什么特点?两种方式全局开启在js开头加上'usestrict'局部开启,在作用域开头加上functionfn(){'usestrict'}特点:1,全局变量必须......
  • JavaScript 设计模式之策略模式
    什么是设计模式?为什么需要学习设计模式?学习设计模式的目的是:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工......
  • JS事件循环之宏任务和微任务
    首先我们知道javascript是一个单线程的脚本语言,也就是说我们在执行代码的过程中不会出现同时进行两个进程(执行两段代码)。JS执行过程中会产生两种任务,分别是:同步任务和异......
  • 多重循环~平面分割
    题目描述:输入第一行输入一个整数m(m<=100),表示有m组测试数据。接下来的m行,每行有两个整数n和p,分别表示平面内的直线数和相交于一点直线数。 输出每组测试数据输出......
  • 使用Shell脚本进行语句循环
    使用Shell脚本进行语句循环......
  • JavaScript对象-Date、Math
    JavaScript对象-Date<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Date对象</title><script>/*Date:......
  • 616Javascript_语法_练习_99乘法表 and
    练习9*9乘法表<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>99乘法表</title><style>td{border:1pxs......
  • JavaScript_对象-Function、Array
    JavaScript_对象-Function<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Function对象</title><script>/*......
  • pycharm中的翻译插件如何安装以及常见问题
    1.安装pycharm中的翻译插件  2.常见问题2.1由于翻译插件默认使用的是谷歌翻译,正常情况下我们无法使用,需要修改并配置成其他翻译引擎。  配置时需要输入ID......
  • c语言循环语句(c语言循环语句switch)
    C语言中循环语句有哪些?C提供三种基本的循环语句:for语句、while语句和do-while语句。一.for循环for循环是开界的。它的一般形式为:for(;;)语句;初始化总是一个赋值......