首页 > 其他分享 >【React工作记录一百一十五】前端小知识点扫盲笔记记录13

【React工作记录一百一十五】前端小知识点扫盲笔记记录13

时间:2023-06-19 19:37:08浏览次数:60  
标签:知识点 13 console log 记录 arr 数组 var geyao

前言

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注前端小歌谣带你进入前端巅峰交流群 今天继续对前端知识的小结

数组去重的方式

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>数组去重的第二种方式</title>
	</head>
	<body>
        <div id="geyao"></div>
	</body>
    <script>
        var geyao = [1, 2, 3, 4, 6, 7, 1, 2, 3, 8, 9]
        function ArrayCommon(arr) {
            //判断是不是数组  不是数组就返回一个false
            if (!Array.isArray(arr)) {
                console.log('这不是一个数组哦')
                return
            }
            //元素在数组中第一次出现的位置是否和元素现在的位置相等
            return Array.prototype.filter.call(arr,function(item,index){
                console.log(arr.indexOf(item),item,index)
                return arr.indexOf(item)===index
            })
        }
        console.log(ArrayCommon(geyao, 'geyao'))
        // document.getElementById("geyao").innerText=ArrayCommon(geyao)
    </script>
</html>

数组扁平化

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>数组扁平化第一种方式 循环</title>
	</head>
	<body>
		<script>
			let arr = [0, [1, [2, 3, [4, [5, 6]], 7]], [8, 9]]
			function geyao(arr) {
				var show = []
				for (var i = 0; i < arr.length; i++) {
					//如果arr[i]是一个数组
					if (Array.isArray(arr[i])) {
                        //递归遍历arr[i]
						show.push.apply(show, geyao(arr[i]))
					} else {
						show.push(arr[i])
					}
				}
				return show
			}
            console.log(geyao(arr)) //[0,1,2,3,4,5,6,7,8,9]
		</script>
	</body>
</html>

数组扁平化reduce方法

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>reduce方法</title>
	</head>
	<body>
		<!-- reduce() 方法对数组中的每个元素按序执行一个由您提供的 reducer 函数,
            每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。 -->
		<!-- 合并到单个数组  -->
		<script>
						var total = [1, 2, 3].reduce(function (sum, current) {
							return sum + current
						}, 0)
						console.log(total, 'total') //6

						var geyao = [
							{
								name: 'xiao hua',
								age: '18',
							},
							{
								name: 'xiao hong',
								age: '20',
							},
							{
								name: 'xiao gang',
								age: '16',
							},
							{
								name: 'xiao li',
								age: '15',
							},
						]

						var points = {
							"xiaohuan": 500,
							"xiaohong": '男',
						}
						var fangfang = geyao.reduce(function (arr, item) {
							// 移除名字中的空格,用来获取对应的 points
							var key = item.name.replace(' ', '')
							// 如果geyao有points,则加上它,否则设置为0
							if (points[key]) {
								item.points = points[key]
							} else {
								item.points = 0
							}
							// 把wizard对象加入到新数组里
							arr.push(item)

							// 返回这个数组
							return arr
						}, [])

			            console.log(fangfang,"fangfang") 
                        // [{	name: 'xiao hua',age: '18',points: 0},{age: "20",name: "xiao hong",points: "男"},
                        // {age: "16",name: "xiao gang",points: 0},{age: "15",,name: "xiao li",points: 0}]
		</script>
	</body>
</html>

数组扁平化第三种方式

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>数组扁平化第三种方式</title>
	</head>
	<body>
		<script>
            	let arr = [0, [1, [2, 3, [4, [5, 6]], 7]], [8, 9]]
			function flattenArray(arr) {
				// arr.some 方法返回是否有满足条件(函数标识)的元素  只要是数组就进行拼接
				while (arr.some((item) => Array.isArray(item))) {
					arr = [].concat.apply([], arr)
				}
				return arr
			}
			console.log(flattenArray(arr)) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
		</script>
	</body>
</html>

数组扁平化第二种方式

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>数组扁平化第二种方式</title>
	</head>
	<body>
		<script>
			let arr = [0, [1, [2, 3, [4, [5, 6]], 7]], [8, 9]]

			function flattenArray(arr) {
				return arr.reduce((ans, item) => {
                    //判断是不是数组 如果不是数组就.concat 不然继续循环递归
					return ans.concat(
						Array.isArray(item) ? flattenArray(item) : item
					)
				}, [])
			}
            console.log(flattenArray(arr),"arr")
		</script>
	</body>
</html>

数组扁平化第四种方式

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>数组扁平化第四种方式</title>
	</head>
	<body>
		<script>
			let arr = [0, [1, [2, 3, [4, [5, 6]], 7]], [8, 9]]
			function flattenArray(arr) {
				// join 方法可返回一个数组元素组成的字符串(默认以 ',' 隔开),无论数组多少维
				// split 方法返回的数组的成员都是字符串
				// map 方法可以对数组的每个元素转换成 Number 类型(方法有多种),返回修改后的新数组
				return arr
					.join()
					.split(',')
					.map((item) => item - 0)
			}
			console.log(flattenArray(arr)) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
		</script>
	</body>
</html>

数组方法slice

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数组方法slice</title>
</head>
<body>
  <script>
     var geyao=["1","2","3","4"]
    var geyaotest=["1","2","3","4"]
    var geyaofangfang=["1","2","3","4"]
    var fangfang=["1","2","3","4"]
    var fangfangTest=["1","2","3","4"]
  

    //arr.slice([begin[, end]]) slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝
    //从第一个位置开始截取到最后一个位置
    console.log( geyao.slice(1),"geyao") // [ "2", "3", "4" ]
    //从第一个位置截止到第二个位置
    console.log( geyaotest.slice(1,2),"geyaotest") // [ "2" ]
    //从第一个位置截取到最后一个位置
    console.log( geyaofangfang.slice(1,5),"geyaofangfang") // [ "2", "3", "4" ]
    //从最后一个位置开始截取
    console.log( fangfang.slice(-1),"fangfang") // [  "4" ]
    //从最后一个位置开始截取 截取当前倒数第二个
    console.log( fangfangTest.slice(-2,-1),"fangfangTest") // [ "3" ]
  </script>
</body>
</html>

数组方法splice

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数组方法splice</title>
</head>
<body>
  <script>
    //splice(start,end,index1,index2) 从什么位置开始,删几个?删了后插入什么新元素?
    var geyao=["1","2","3","4"]
    var geyaotest=["1","2","3","4"]
    var geyaofangfang=["1","2","3","4"]
    var fangfang=["1","2","3","4"]
    var fangfangTest=["1","2","3","4"]
    var fangfangBang=["1","2","3","4"]
    var kangkang=["1","2","3","4"]
    var kangkangni=["1","2","3","4"]
    var kangkanghao=["1","2","3","4"]
    //1个参数会截取当前 大于2之后的数都会被删除
    geyao.splice(2)
    console.log(geyao,"geyao")//["1","2"]
    //2个参数 表示从什么位置截取到什么位置 把下标为2的截取掉
    geyaotest.splice(2,1)
    console.log(geyaotest,"geyaotest") //[ "1", "2", "4" ]
    //3个参数 在什么位置到什么位置添加
    geyaofangfang.splice(2,1,"5")
    console.log(geyaofangfang,"geyaofangfang") //[ "1", "2", "5", "4" ]
    //超出数组长度 默认获得前面的全部 
    fangfang.splice(5)
    console.log(fangfang,"fangfang") // [ "1", "2", "3", "4" ]
    //从5之后开始截取
    fangfangTest.splice(5,1)
    console.log(fangfangTest,"fangfangTest") // [ "1", "2", "3", "4" ]
    //对后置的位置进行添加
    fangfangBang.splice(5,1,"6")
    console.log(fangfangBang,"fangfangBang") // [ "1", "2", "3", "4","6"]
    //倒着开始截取剩余部分
    kangkang.splice(-1)
    console.log(kangkang,"kangkang") // [ "1", "2", "3" ]
    //倒着进行处理
    kangkangni.splice(-2,1)
    console.log(kangkangni,"kangkangni")//[ "1", "2", "4" ]
    //倒着插入对应值
    kangkanghao.splice(-2,1,"8")
    console.log(kangkanghao,"kangkanghao")//[ "1", "2", "8", "4" ]
    //该方法向或者从数组中添加或者删除项目,返回被删除的项目。(该方法会改变原数组)
  </script>
</body>
</html>

数组特性

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>数组特性</title>
	</head>
	<body>
		<script>
			// 数组空位
			// 数组可以使用一串逗号来创建空位,逗号前面为一项,值为undefined
			// 改变length会直接作用于原数组:
			// 减小length会从数组尾部 删除元素
			// 增大length会向数组尾部添加值为undefined的元素
		</script>
	</body>
</html>

总结

我是歌谣 最好的种树是十年前 其次是现在 加油 歌谣

标签:知识点,13,console,log,记录,arr,数组,var,geyao
From: https://blog.51cto.com/u_14476028/6517057

相关文章

  • 全栈开发知识点|那些authentication之类的名词
    原文来自于:https://www.51cto.com/article/675946.html此处进行进一步的记录身份验证(Authentication):验证当前用户的身份,证明“你是你自己” 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人授权Authorization......
  • 记录--Vue3 封装 ECharts 通用组件
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助按需导入的配置文件配置文件这里就不再赘述,内容都是一样的,主打一个随用随取,按需导入。import*asechartsfrom"echarts/core";//引入用到的图表import{LineChart,typeLineSeriesOption}from"echarts/......
  • 记录 Windows 下 RabbitMQ 的部署
    1、软件下载安装前需要安装Erlang语言环境:https://www.erlang.org/downloadsRabbitMQ下载:https://www.rabbitmq.com/download.html2、运行安装包,一路下一步3、打开开始菜单,找到RabbitMQCommandPrompt(sbindir)运行......
  • 记录 Windows 下绿色版 PostgreSQL 部署使用
    使用官方的安装包,可能会在最后的步骤遇到各种有关服务运行的问题,绿色版就非常简单了,记录一下绿色版的下载部署。1、下载地址:https://www.enterprisedb.com/download-postgresql-binaries2、将文件解压到想放置的目录3、进入pgsql\bin目录,打开命令提示符执行以下命令::初......
  • 杭电OJ-2159-FATE踩坑记录
    杭电OJ-2159-FATE解题记录目录杭电OJ-2159-FATE解题记录题目描述FATEProblemDescriptionInputOutputSampleInputSampleOutput数据定义递推公式一般解法——用三维数组保存所有数据AC代码优化解法——用二维数组,当前层的数据覆盖上一层的数据AC代码还踩了一个OJ平台的坑源源......
  • 计算机组成原理知识点
    第一章电子计算机分为电子模拟计算机(应用范围较小)和电子数字计算机(还有数模混合),数字计算机的主要特点是按位运算,并且不连续地跳动计算。平常说的计算机都是电子数字计算机。电子数字计算机分为专用计算机和通用计算机。运算器+控制器等于一个cpu第一台计算机1946年美国宾......
  • Android面试涨薪攻略指南:Android面试必知必会Java知识点
    前言大多数面试者,虽然看起来工作努力,但他们表现出来的能力水平,却不足以通过面试,或拿到期望的薪资。在我看来,造成这种情况的原因,主要有这么两方面:第一,“知其然不知其所以然”。做了几年技术,开发了一些业务应用,但没有思考过这些技术选择背后的逻辑。所以,公司很难定位你日后的成长潜力......
  • 记录一次Java Convert Kotlin造成的空指针异常
    不知道大家在使用Kotlin进行编码的时候,有没有直接使用AS的Code->ConvertJavaFile2KotlinFile这个功能,此功能在日常使用中还是比较实用的,可以帮助我们将老的Java或者复制的Java代码一键转换成Kotlin代码,最近在使用此功能的时候竟然遇到了空指针的Crash,在此记录一下,顺便也给大......
  • hdfs的透明加密记录
    1、背景我们知道,在hdfs中,我们的数据是以block块存储在我们的磁盘上的,那么默认情况下,它是以密文存储的,还是以明文存储的呢?如果是明文存储的,那么是否就不安全呢?那么在hdfs中是如何做才能做到数据的透明加密呢?2、常见的加密层级应用层加密:这是最安全和最灵活的方法。加密内容最......
  • hdfs的透明加密记录
    1、背景我们知道,在hdfs中,我们的数据是以block块存储在我们的磁盘上的,那么默认情况下,它是以密文存储的,还是以明文存储的呢?如果是明文存储的,那么是否就不安全呢?那么在hdfs中是如何做才能做到数据的透明加密呢?2、常见的加密层级应用层加密:这是最安全和最灵活的方法。加密内容最......