ES6中Array对象的方法和扩展、string的扩展方法、数组的遍历。(含例题)

简介: 学习ES6中Array对象的方法和扩展、string的扩展方法、数组的遍历。

目录


一、Array对象方法


1.Array.from():将伪数组或可遍历对象转换为真正的数组(字符串,对象,类数组,set,map等)


2.array.find():返回数组符合条件的第一个元素的值(数组与对象)


3.array.findindex():找出符合条件的成员的位置。


4.array.includes():找出某个数组是否包含给定的值。


二、Array扩展


1.array.map()  返回新数组


2. array.filter() 过滤


3.array.reduce() 缩减


4.array.fill() 填充


三、string扩展


1.模板字符串的用法


2.startsWith和endsWith用法


3.repeat字符串重复次数


四、数组的遍历


1.for of遍历数组的值


2.for in 遍历索引


3.for of 遍历对象


4.forEach的用法


五、例题


1.找到一组同学中考试分数及格的第一个同学并输出到页面上。


2.找出大于指定年龄(页面input框接收)的第一个人,并输出这个人的位置。


3.一组人员信息,输出到页面上显示。


4.输出一组人员信息,输出到页面信息如下(姓名,分数,是否及格60分)。


一、Array对象方法


1.Array.from():将伪数组或可遍历对象转换为真正的数组(字符串,对象,类数组,set,map等)

let str = '1234';
const arr1 =Array.from(str);
console.log(arr1);//(4) ['1', '2', '3', '4']
const Arr = {
      2:'a',
      3:'b',
      length:4,
}
console.log(Array.from(Arr));// (4) [undefined, undefined, 'a', 'b']


2.array.find():返回数组符合条件的第一个元素的值(数组与对象)

const arr = [1,2,3,4];//数组
let num = arr.find(item=>item==3);
console.log(num);//3
const arr1 = [    //对象
  {realname:"张三1",age:18},
  {realname:"张三2",age:17},
  {realname:"张三3",age:19},
  {realname:"张三4",age:17},
    ];
console.log(arr1.find(item=>item.age==17));//age: 17 realname: "张三2"


3.array.findindex():找出符合条件的成员的位置。

const arr = [1,2,3,4]; //数组
console.log(arr.findIndex(item=>item==4)); //3
const arrobj = [    //对象
  {realname:"张三1",age:18},
  {realname:"张三2",age:19},
  {realname:"张三3",age:15},
  {realname:"张三4",age:14},
    ]
console.log(arrobj.findIndex(item=>item.age==19)); //1


4.array.includes():找出某个数组是否包含给定的值。

const arr = [1,2,3,4];
console.log(arr.includes(10));//有就返回true 没有就返回false


二、Array扩展


1.array.map()  返回新数组

const arr = [1,2,3,4];
const newarr = arr.map(item=>item+2);
console.log(newarr); //从新输出一个数组,不是改变原的数组


2. array.filter() 过滤

const arr = [1,2,3,4,5,6,7];
const newarr = arr.filter(item=> item%2==0);
console.log(newarr);

3.array.reduce() 缩减

//total:即是初始值又是返回值
//currentValue:当前值
reduce第二个参数指定初始值
const arr = [1,2,3,4,5];
let sum = arr.reduce((total,currentValue)=>{
    return total + currentValue;
},10) //可以指定初始值
console.log(sum);


4.array.fill() 填充

let arr = [1,2,3,4,5,6,7];
  arr.fill('x',1,3);
  console.log(arr);//[1, 'x', 'x', 4, 5, 6, 7]


三、string扩展

1.模板字符串的用法

function demo(){
  return "end";
    }
let es6 = "es6!";
let str = `hello,${es6},${demo()}`;
console.log(str);//hello,es6,end


2.startsWith和endsWith用法

let str = "hello,es6!";
console.log(str.startsWith("hello"));//判断某个字符串前面是否包含hello 有就为true
console.log(str.endsWith("es6!"));//判断某个字符串后面是否包含es6 有就为true


3.repeat字符串重复次数

console.log("hello".repeat(4));//hellohellohellohello


四、数组的遍历


1.for of遍历数组的值

const arr = ["a","b","c","d"];
   for(v of arr){
        console.log(v); //a,b,c,d
}


2.for in 遍历索引

const arr = ["a","b","c","d"];
    for(let k in arr){
     console.log(k); //0,1,2,3
        }


3.for of 遍历对象

 

const Person={realname:'zs',age:20}
   const keys = Object.keys(Person);
   for(let k of keys){
   console.log(`k:${k}`,`v:${Person[k]}`)}; //k:realname v:zs k:age v:20


4.forEach的用法

let arr = [1,2,3,4];
  arr.forEach((item,index)=>{
  console.log(`v:${item},k:${index}`);  
    })  //v:1,k:0  v:2,k:1 v:3,k:2 v:4,k:3


五、例题

1.找到一组同学中考试分数及格的第一个同学并输出到页面上。

<ul class="score"></ul> 
    <hr>
    <h1 class="username"></h1>
    <script>
        let person=[
            {realname:'张三',score:'40'},
            {realname:'李四',score:'40'},
            {realname:'王五',score:'60'},
            {realname:'赵六',score:'90'}
        ]
        let str = '';
        let userName='';
        for(i=0;i<person.length;i++){
            str = str + `<li>姓名:${person[i].realname},分数:${person[i].score}</li>`
        }
        document.querySelector('.score').innerHTML=str;
        userName = person.find(item=>item.score>=60)
        document.querySelector('.username').innerHTML=`姓名:${userName.realname},分数:${userName.score}`
    </script>


2.找出大于指定年龄(页面input框接收)的第一个人,并输出这个人的位置。

<ul class="age"></ul>
    <hr>
    <input type="text" placeholder="请输入年龄" value="" class="mark">
    <input type="button" value="查询" class="btn">
    <h1></h1>
    <script>
        let person=[
            {realname:'张三',age:'15'},
            {realname:'李四',age:'18'},
            {realname:'王五',age:'19'},
            {realname:'赵六',age:'20'}
        ]
        let str = '';
        for(i=0;i<person.length;i++){
            str = str + `<li>姓名:${person[i].realname},分数:${person[i].age}</li>`
        }
        document.querySelector('.age').innerHTML=str;
        btn = document.querySelector('.btn')
        btn.onclick=function(){
            let num;
            input=document.querySelector('.mark').value;//获得输入的值
            num = person.findIndex(item=>item.age==input)//得到下标
            if(num==-1){
            document.querySelector('h1').innerHTML='查无此人';
            }else{
                num++;
            document.querySelector('h1').innerHTML=`位置是${num}`
            }
        }
    </script>


3.一组人员信息,输出到页面上显示。

let arr =[
            {realname:'zs',birthday:'2000 10-5'},
            {realname:'zs',birthday:'2009 10-5'},
            {realname:'zs',birthday:'2001 10-5'},
            {realname:'zs',birthday:'2005 10-5'}
        ]
        let newarr = arr.map((item)=>{
            let newyear = new Date().getFullYear();
            item[`age`]=newyear-item.birthday.slice(0,4)
            return item;
        })
        let newarr1 = arr.filter(item=>item.age>20)
        console.log(newarr);
        console.log(newarr1);


4.输出一组人员信息,输出到页面信息如下(姓名,分数,是否及格60分)。

const person=[
            {realname:'zs1',age:20,score:50},
            {realname:'zs2',age:20,score:70},
            {realname:'zs3',age:20,score:80},
            {realname:'zs4',age:20,score:90}
        ]
    // 使用 for of 将内容显示在网页上
    // let arr='';
    // for(let v of person){
    //      arr =arr+ `<li>姓名:${v.realname},年龄:${v.age}</li>`
    // }
    // document.querySelector('ul').innerHTML=arr;
    let mark='';
    let newarr = person.filter(item=>{
    let rer= item.score>60?'及格':'不及格'
    mark+=`<li>姓名:${item.realname},年龄:${item.age},分数:${item.score},${rer}</li>`
    })
      document.querySelector('ul').innerHTML=mark;


相关文章
|
JavaScript 前端开发 Java
深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
Array.find() 是 JavaScript 数组方法中一个非常实用和强大的工具。它不仅提供了简洁的查找操作,还具有性能上的独特优势:返回的引用能够直接影响原数组的数据内容,使得数据更新更加高效。通过各种场景的展示,我们可以看到 Array.find() 在更新、条件查找和嵌套结构查找等场景中的广泛应用。 在实际开发中,掌握 Array.find() 的特性和使用技巧,可以让代码更加简洁高效,特别是在需要直接修改原数据内容的情形。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
Java 开发者
课时45:String对象常量池
本次课程的主要讨论了对象池的概念及其在Java开发中的应用。首先,介绍了静态常量池和运行时常量池的区别。讨论了静态常量池和运行时常量池在实际开发中的作用,以及如何理解和应用这些概念。 1.常量池的分类 2.静态常量池和运行时常量池的区别
194 1
|
存储 JavaScript Java
课时44:String类对象两种实例化方式比较
本次课程的主要讨论了两种处理模式在Java程序中的应用,直接赋值和构造方法实例化。此外,还讨论了字符串池的概念,指出在Java程序的底层,DOM提供了专门的字符串池,用于存储和查找字符串。 1.直接赋值的对象化模式 2.字符串池的概念 3.构造方法实例化
275 1
|
JavaScript 前端开发
JavaScript Array map() 方法
JavaScript Array map() 方法
|
移动开发 运维 供应链
通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
array.some()可以用来权限检查、表单验证、库存管理、内容审查和数据处理等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
供应链 JavaScript 前端开发
通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
array.every()可以用来数据验证、权限检查、一致性检查等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
367 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
JavaScript 算法 前端开发
JS算法必备之Array常用操作方法
这篇文章详细介绍了JavaScript中数组的创建、检测、转换、排序、操作方法以及迭代方法等,提供了数组操作的全面指南。
553 2
JS算法必备之Array常用操作方法
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
187 3
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
202 3

热门文章

最新文章

  • 1
    PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
    278
  • 2
    Java 中数组Array和列表List的转换
    995
  • 3
    JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
    718
  • 4
    通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式、聚合统计、处理树结构数据和性能优化,reduce()的使用详解(附实际应用代码)
    1546
  • 5
    通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
    664
  • 6
    通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
    460
  • 7
    多维数组操作,不要再用遍历循环foreach了!来试试数组展平的小妙招!array.flat()用法与array.flatMap() 用法及二者差异详解
    306
  • 8
    别再用双层遍历循环来做新旧数组对比,寻找新增元素了!使用array.includes和Set来提升代码可读性
    311
  • 9
    Array.forEach实战详解:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提高Array.forEach的性能
    194
  • 10
    深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
    756