15.2js数组练习题答案

2024-05-28 17:36
文章标签 数组 js 练习题 答案 15.2

本文主要是介绍15.2js数组练习题答案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(1)求出数组中的最大值

        var arr=[1,8,45,23,14,5]// 直接输出// console.log(Math.max(...arr))// 封装函数function fn(argArr){return Math.max(...argArr)}var res1=fn(arr)console.log(res1)       //45//复用函数var res2=fn([65,32,656,87,56,48])console.log(res2)       //656

(2)将数组中的值转为字符串,并用"|"分隔

        var arr=[1,8,'aa',23,14,5]// 直接输出function fn(argArr){return argArr.join('|')}console.log(fn(arr))    //1|8|aa|23|14|5

(3)选出数组中大于10的数

        var arr=[1,8,'aa',23,14,5]var res=arr.filter((item,index)=>{return item > 10})console.log(res)    //[23, 14]

(4)数组反转

        var arr=[1,8,'aa',23,14,5]arr.reverse()console.log(arr)    //[5, 14, 23, 'aa', 8, 1]

(5)数组去重

        双层for循环,当前项和每一项作比较,如果相同,则从数组中删除

        var arr=[1,2,"aa",1,2,"bb","aa","bb"]for(var i=0;i<arr.length-1;i++){for(var j=1;j<arr.length;j++){if(arr[i]===arr[j]&&i!==j){         arr.splice(j,1)    //两项相同删除后一项--->删除j索引位置的值}                    }}console.log(arr)        //[1, 2, 'aa', 'bb']//如果 arr.splice(i, 1);删除的是前一项,问题如下:
//第一轮去重 i=0   arr结果是:[2, 'aa', 1, 2, 'bb', 'aa', 'bb']
//第二轮去重 i=1   那么此项比较是arr[0]-> 'aa',就会漏掉2

(6)求出数组元素和

        var arr=[2,5,2,5,6,8,1]var sum=arr.reduce(function(pre,item){return pre+item})console.log(sum)    //29

(7)打印出数组的奇数

        var arr=[2,5,2,5,6,8,1]arr.forEach(function(item){if(item%2!==0){console.log(item)}})

(8)计算数组中能被3整除的偶数和

        var arr=[3,6,8,9,12,24,48,45,34]var sum=arr.reduce(function(prev,item){if(item%3==0&&item%2==0){prev=prev+item}return prev},0)console.log(sum)    //90

(9)有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中

        var arr=[3, 6, 8, 9, 12, 24, 34, 45, 48]arr.push(7)arr.sort(function(a,b){return a-b})console.log(arr)    //[3, 6, 7, 8, 9, 12, 24, 34, 45, 48]

(10)将一个数组从大到小排列

        var arr=[3,88,81,19,12,24,48,45,34]arr.sort(function(a,b){return b-a})console.log(arr)        //[88, 81, 48, 45, 34, 24, 19, 12, 3]

(11)生成数组长度为30,且从2开始的所有偶数

        var arr=[]var count=2while(arr.length<30){arr.push(count)count=count+2}console.log(arr)

(12)数组扁平化,示例:var arr =[[1, 2], [3, [4, 5]]]; // 扁平后:[1, 2, 3, 4, 5]

var arr = [[1, 2], [3, [4, 5]]]
console.log(arr.flat(Infinity))
//或者 console.log(arr.flat(2))

(13)定义一个含有30个整型元素的数组,然后按顺序每5个数求出一个平均值,放在另一个数组中并输出

            var arr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]var sumArr=[]var res=0arr.forEach(function(item,index){if(index%5==0&&index!=0){sumArr.push(res)res=0}res+=item})console.log(sumArr)

(14)封装函数书写代码实现下列效果

                    输入: [{name:'张三',sex: '男'}, {name:'花花',sex: '女'}]

                    输出: ['张三','花花']

            var arr= [{name:'张三',sex: '男'}, {name:'花花',sex: '女'}]var newArr=[]function fn(arr){arr.forEach(function(item,index){// console.log(Object.values(item)[0])newArr.push(Object.values(item)[0])return newArr});}fn(arr)console.log(newArr)     //['张三', '花花']

(15)封装函数书写代码实现下列效果

                    输入: [{name:'张三',sex: '男'}, {name:'花花',sex: '女'}]

                    输出: {'张三': '男', '花花': '女'}

            var arr= [{name:'张三',sex: '男'}, {name:'花花',sex: '女'}]var obj={}function fn(arr){arr.forEach(function(item,index){obj[Object.values(item)[0]]=Object.values(item)[1]return obj});}fn(arr)console.log(obj)     //{张三: '男', 花花: '女'}

(16)实现下列效果

            var arr = [0,1,2,2,3,3,3,4,4,4,4,6]

            var arr2 = arr.map(补全代码)

            console.log(arr2) // ['周日', '周一', '周二', '周二', '周三', '周三', '周三', '周四', '周四', '周四', '周四','周六']

        var arr = [0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 6]var str=['日','一','二','三','四','五','六']var arr2 = arr.map(function (item) {return '周'+str[item]})console.log(arr2)// ['周日', '周一', '周二', '周二', '周三', '周三', '周三', '周四', '周四', '周四', '周四','周六']

(17)使用reduce统计一个数组中元素出现的次数

        定义一个对象用来存储

        var arr = [0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 6]var obj={}arr.reduce(function(pre,item,index){if(!obj[item]){    //如果对象中没有这个keyobj[item]=1    //那么添加进去,并且value=1}else{obj[item]=obj[item]+1    //如果存在,value+1}return obj},0)console.log(obj)

(18)判断数组中出现次数最多的元素

        var arr = [0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 6]var obj={}arr.reduce(function(pre,item,index){if(!obj[item] || item==0){obj[item]=1}else{obj[item]=obj[item]+1}return obj},0)console.log(obj)          //{0: 1, 1: 1, 2: 2, 3: 3, 4: 4, 6: 1}var newArr=Object.values(obj)console.log(newArr)       //获取对象中的属性值var max=Math.max(...newArr)console.log(max)         //获取出现次数最多的值--->4for(var k in obj){if(obj[k]==max){console.log('出现次数最多的是:'+k)}}

(19) 统计数组中重复的元素

        var arr = [0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 6]//定义两个数组,一个用来判断是否重复// 一个用来存放重复的元素var arr1=[]var arrRep=[]arr.forEach(function(item){if(!arr1[item]){arr1.push(item)}else{arrRep.push(item)}})console.log(new Set(arrRep))        //[2,3,4]

(20)给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组。

假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

        var nums = [2, 11,7 , 15]var target = 9var map = new Map();function fn(nums, target) {for (var i = 0; i < nums.length; i++) {let key = target - nums[i];console.log('key的值', key, map.has(key))//判断map中是否有keyif (map.has(key)) {return [map.get(key), i]}// 在map中添加nums[i],将索引设置为valuemap.set(nums[i], i);console.log("-------------",map)}}fn(nums, target) //[0,1]

map和set作用和语法:set和map数据结构-CSDN博客

上一篇:15.数组的方法(改变原数组和不改变原数组)-CSDN博客

下一篇:16.js数学方法和进制转换-CSDN博客

这篇关于15.2js数组练习题答案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011234

相关文章

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

Java数组初始化的五种方式

《Java数组初始化的五种方式》数组是Java中最基础且常用的数据结构之一,其初始化方式多样且各具特点,本文详细讲解Java数组初始化的五种方式,分析其适用场景、优劣势对比及注意事项,帮助避免常见陷阱... 目录1. 静态初始化:简洁但固定代码示例核心特点适用场景注意事项2. 动态初始化:灵活但需手动管理代

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放