数组的方法

JS数组方法 JavaScript 数组的大小是可调整的,并且可以包含不同。(当不需要这些特性时,请使用。注:JavaScript 类型数组是类似数组的对象,它提供了一种在内存缓冲区中读取和写入原始二进制数据的机制。JavaScript 数组不是关联数组,因此不能使用任意字符串作为索引来访问数组元素,但必须使用非负整数(或其各自的字符串形式)作为索引来访问。 阅读详情

1.Array of
1.1 what?
Array of 是一种新的数组创建模式
1.2why? 以前创建数组会有一个问题就是

		let old = [0]
        old[3] = 3
        console.log(old)

结果打印的是:(4) [0, empty × 2, 3],当没有赋值时,系统会默认添加两个undefined,这样容易搞混淆,所以需要一个不产生空的方式.
1.3how?

		let arr = Array.of(6)
        console.log(arr.length)
        console.table(arr)
  1. Array.form
    2.1 what?
    一种将字符串转换成数组的方式
    2.2 why?
    这样方便把一个字符串里面的内容给遍历出来
    2.3 how?
	let str = '今天天气真不错'
    console.log(typeof Array.from(str))

3.展开语法
3.1 what?
…name 把数据以字符串的形式保存
如果是参数的形式就是把实参装进一个数组内
3.2 why?
这样写起来比较简便,而且还可以使用数组的方法
3.3 how?

 	let arr = ['张飞', '狂铁', '夏侯', '蒙犽']
    let arr2 = ['张飞1', '狂铁', '夏侯', '蒙犽']
    let arr3 = ['张飞2', '狂铁', '夏侯', '蒙犽']

    function show (...args) {
      console.log(args[0]) //(4) ["张飞", "狂铁", "夏侯", "蒙犽"]
    }
    show(arr, arr2, arr3)

4.push往后添加
会对原数组进行改变


    function addArray (begin, end) {
      let arr = []
      for(let i=begin; i<=end; i++){
        arr.push(i) //加在最后面
      }
      return arr
    }
    console.table(addArray(1, 10))

5.unshift往前添加
会对原数组进行改变

	let arr = [1,2,3]
	arr.unshift(6,7)
	console.log(arr) //[6,7,1,2,3]

6.pop从后开始删除
会对原数组进行改变

    arr.pop()
	console.log(arr) //[6,7,1,2]

7.shift从前开始删除
会对原数组进行改变

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

8.slice对数组进行截取
不会对原数组产生改变
参数为起始到结束位置

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

9.splice对数组进行增删改
会对原数组产生改变
增
第一个为起始,第二个为0就是增加

    arr.splice(3,0,'增','增','增') // [7, 1, 2, "增", "增", "增"]

改
第一个为起始,第二个为第一个数之后改的位置,

    arr.splice(3,1,'改','改','改') //[7, 1, 2, "改", "改", "改", "增", "增"]

删
第一个为起始,第二个为删几个,是从第一个数开始删起

    arr.splice(3,4) // [7, 1, 2, "增"]

查
第一个为要查的,第二个为结束位置

    let num = arr.splice(2, 2) //2, "增"

9.indexof lastindexof 查找元素,返回下标(不推荐使用,用下面那个)
10.includes查找元素,返回布尔值(不推荐使用,用下面那个)
11.find
因为includes查找引用类型时可能会产生新的内存地址,所以要使用find这种类似遍历的查找,返回的是具体的对象

	let arr = [{name: '张三'}, {name: '李四'}, {name: '王五'}]
    let target = arr.find(function(item){
      return item.name == '李四'
    })
    console.log(target) //{name: '李四'}

12.findIndex 和上面一样,只是返回的是下标

	let arr = [{name: '张三'}, {name: '李四'}, {name: '王五'}]
    let target = arr.findIndex(function(item){
      return item.name == '李四'
    })
    console.log(target) //1

13.sort()排序
a是最大和最小的值,b是其他所有的值,原理应该是通过冒泡排序来一个一个算的
通过比较a和b的大小,一般都是a在前就是从小到大
b在前就是从大到小

    let cart = [
      { name: 'iphone', price: 8000},
      { name: 'imac', price: 10000},
      { name: 'ipad', price: 5000}
    ]
    cart = cart.sort(function(a,b){
      return a.price - b.price
    })
    console.table(cart)

14.冒泡排序

	let arr = [1,2,3,45,76,1,42,7,512,8,33,0,321]
    function pao (array) {
      for (const n in array){
        for(const m in array){
          if(array[n] < array[m]){
            const value = array[n]
            array[n] = array[m]
            array[m] = value
          }
        }
      }
      return array
    }
    console.log(pao(arr))

15.forEach循环遍历

	let arr = [1,2,3,45,76,1,42,7,512,8,33,0,321]
    arr.forEach(function(item, index, lessons){
      console.log(item)
      console.log(index)
      console.log(lessons)
    })

16.every 检测数据
每一个都要为真才会返回真

	let words = ['黄博文', '黄博文', '黄博文']
    let title2 = '黄博文牛逼'

    let state = words.every(function (item, index, array){
        return title2.includes(item)
    })
    console.log(state) //true

17.some检测数据
有一个为真就返回真

	<input type="text" name="title">
    <span></span>


	let keywords = ['张三', '李四']
    let title = document.querySelector('[name="title"]')
    title.addEventListener('keyup', function () {
      	const res = keywords.some(keyword => {
        return this.value.indexOf(keyword) != -1
    })
      document.querySelector("span").innerHTML = res ? "" : "必须包含" + keywords.join(",") + "关键词"
    })

18.filter过滤

	let arr = [
      { name: '张三', age: 18, gender: '男'},
      { name: '李四', age: 28, gender: '女'},
      { name: '王五', age: 38, gender: '男'},
      { name: '赵六', age: 48, gender: '男'}
    ]
    let res = arr.filter(function(array){
      return array["gender"] == '男'
    })
    console.log(res)

19.手写filter原理

	let arr = [1,2,3,4]
    function filter (array, callback) {
      let newArray = []
      for (const value of array){
        if(callback(value) === true){
          newArray.push(value)
        }
      }
      return newArray
    }
    console.log(filter(arr, function(value){
      return value>1
    }))

20.map复制数组

	let arr = [1,2,3,4]
    
    let newArray = arr.map(function(item, index, arr){
      return item
    })
    console.log(newArray) //[1, 2, 3, 4]

21.reduce 可以迭代数组,并且第一个参数可以是上一次当前函数调用返回的值

 	let arr = [
      { name: '张三', age: 18, gender: '男'},
      { name: '李四', age: 28, gender: '女'},
      { name: '王五', age: 38, gender: '男'},
      { name: '赵六', age: 48, gender: '男'}
    ]
    function filter (array) {
      return array.reduce (function (arr, item) {
        let find = arr.find(function (v) {
          return v.gender === item.gender
        })
        if (!find) {
          arr.push(item)
        }
        return arr
      }, [])
    }
    console.table(filter(arr))
详细解释SigLIP的原理,为什么有些多模态模型喜欢用他?怎么应用于机器人控制呢 详细解释SigLIP的原理,为什么有些多模态模型喜欢用他?怎么应用于机器人控制呢。 阅读详情

相关推荐

Visual SLAM算法笔记

最近在学习SLAM算法,这里作为阅读笔记记录和总结一下。对经典的单目SLAM/VO算法做了摘要和总结,比如Nister VO、MonoSLAM、PTAM、ORB-SLAM、LSD-SLAM、SVO、DSO等,对几个单目和IMU的融合算法也做了简单总结,比如MSCKF、OKVIS、IMU-Preintegration等。

MulinB的技术博客 3万+

根据某个对象属性对数组进行排序

// 根据每个人的年龄,升序排序数组person const person = [ {name:"jack", age:21}, {name:"rose", age:17}, {name:"mike", age:23}, {name:"jonny", age:9} ]; function objectSort(age) { // 比较函数通过age属性获得对象的年龄进行比较 // 比较函数作为函数返回值返回给sort return function

weixin_44537264的博客 397

中国高质量夜间灯光数据

中国高质量夜间灯光数据是CnOpenData与吉林高分遥感应用研究院有限公司合作的数据库 ,基于多源夜间灯光卫星遥感影像,经过科学手段对数据进行降噪、修正、分析统计,以年度、月度为更新频率,以省市县三级行政区划作为统计单元,制作高质量夜间灯光数据。

Sunny9qx的博客 3311

window.location.herf获取到路径,然后处理携带的参数,将?name=“张三“&age=“18“改为{name:张三,age:18}

window.location.herf获取到路径,然后处理携带的参数,将?name="张三"&age="18"改为{name:张三,age:18}

jieyucx的博客 673

免费测试国外大模型Claude 3.7 Sonnet API:无需api key(秘钥)

Claude 3.7 Sonnet是Anthropic公司推出的第三代Claude系列AI模型中的中规模版本(2024年发布),在性能与效率间实现平衡。该模型基于改进的Transformer架构,支持128K上下文窗口,擅长复杂推理、数学计算和创意写作,在GSM8K数学基准测试中准确率达92%。其采用"宪法AI"伦理框架,通过多轮对抗训练减少有害输出,同时新增多模态理解能力(可解析图片/图表内容)。Claude 3.7 Sonnet是Anthropic推出的高效轻量级大模型,主打快速响应与成本优化。

Explinks的博客 1498

Ubuntu 20.04 环境下Autoware.universe 与 Carla 0.9.13 联合仿真

安装内容: ROS Galactic Autoware.universe based on ROS Galactic Carla 0.9.13 UnrealEngine 4.26 Openplanner (additional files: op-bridge/op-agent/scenariorunner/map data)

mhl1107的博客 1799

详解Javascript中的数组方法

Javascript中数组常用方法 1、map 数组格式化。数组中的每个元素调用一个提供的函数,结果作为新的数组返回,不改变原数组 let arr = [1, 2, 3, 4, 5] let newarr = arr.map((item, index, array) => { //参数 1 - item 数组里每个元素 //参数 2 - index ...

weixin_44729537的博客 623

《基于Yolo算法的火灾检测系统设计与实现》开题报告

在消防安全领域,火灾对生命财产安全构成严重威胁。传统的火灾检测手段存在诸多不足,如误报率高、检测范围有限、响应速度慢等。基于 Yolo 算法的火灾检测系统能够利用深度学习技术,实现对火灾的高效、精准检测,具有重要的现实意义。         从社会安全角度看,该系统可以广泛应用于各类公共场所、工业厂房和居民住宅,实时监测火灾隐患,及时发出警报,为人员疏散和消防救援争取宝贵时间,有效降低火灾造成的人员伤亡和财产损失,保障社会公共安全。

m0_69704149的博客 1384

ES6数组方法

ES6中四个数组的使用方法: map(映射):可用于输出数组每一项的值 reduce(汇总):可用于数组的求和操作 filter(过滤器):得到数组中满足指定条件的项 forEach(循环迭代):实现数组的遍历操作 一、map的使用: 参数为: 数组的每一项 let arr=[12,13,14,15,16]; arr.map(item=>{ document.write(item); ...

Lin 的博客 342

如何解除Uniaccess管控??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2390

EMD-LSTM时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)

EMD-LSTM时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 658

js 扁平化多维数组的方法

JS 扁平化多维数组的五种方法 方法一:使用flat() * ES6以后的推荐此方法 方法二:使用正则 + JSON *不推荐 方法三:使用reduce()+concat() 方法四:使用函数递归 *ES6以前推荐此方法 方法五:使用扩展运算符+concat()

sinat_55275851的博客 1322

[QMT量化交易小白入门]-四十九、中小盘策略是否还有未来,市值再平衡策略,年化收益率124%

该策略旨在通过定期再平衡持仓,保持投资组合中股票数量恒定(),并优先持有市值较小的股票。具体来说,策略每两天(period = 2)进行一次再平衡,根据当前市值对持仓进行调整,以实现微盘股的投资目标。中小市值策略对资金量要求有限制,资金量太大由于流动性不足,滑点可能较大,资金量太小,可能不能达到10-20只持仓,来分散风险,10-100w可能是比较理想的,后续可以根据波动率动态调仓,或波动率大于一定值时触发再平衡加入ROE或其他财务指标,或者研发投入强度大的专精特新企业,进行组合优化。

木头大左的博客 1185

js数组常用方法

js数组常用方法还挺多的,如果面试官问你这道题可不要只回答几个哟,那是会扣分的!下面是一篇详细的js数组教程文章

夏天的博客 9万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[Java] 方法和数组

Java中的方法就类似于C语言当中的函数,是实现一种特定的,使用频率高的功能,专门解决一种问题的办法。例如:求一个数的开平方,判断一个数是不是素数。方法也分为两种,一种是Java语言规定的方法,还有一种是程序员根据自己的需要自定义的一些方法。当在解决重复问题时,设置一个方法解决重复问题,可以多次调用方法去解决重复问题,不用每次使用就需要写代码,减少代码冗余度。修饰符 返回值类型 方法名(参数类型){方法体代码;(return 返回值;i++) {

2402_83046353的博客 3051

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数组常用方法

必看!!!数组常用的方法(ES6) 一、forEach:遍历数组 var colors = ["red","blue","green"]; // ES5遍历数组方法 for(var i = 0; i < colors.length; i++){ console.log(colors[i]);//red blue green } // ES6 forEach colors.f...

weixin_42246997的博客 3649

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数组及数组中常用的方法

数组是对象类型的,它属于特殊的对象 数组中常用方法 方法的作用和含义 方法的实参(类型和含义) 方法的返回值 原来的数组是否发生改变 1.实现数组的增删改的方法 这一部分方法都会修改原有的数组 push push: 向数组末尾增加内容 @params(参数)   多个任意类型 @return   新增后数组的长度 unshift unshift: 向数组开始位置增加内容 @pa...

weixin_42069147的博客 1245

SystemVerilog之数组的方法

在条件语句with中,item被称为重复参数,它代表了数组中一个单独的元素。但sum方法使用数组元素的位宽进行计算,所以如果数组元素是单比特的,计算结果也只有一个比特,而不是预期的结果,使用with表达式可以避免这个问题。基本的数组缩减方法是把一个数组缩减成1个值,缩减方法可以用来计算数组中所有元素的和、积或逻辑运算。SystemVerilog没有提供专门从数组里随机选取一个元素的方法,对于顶宽数组、队列、动态数组和关联数组,可以使用$urandom_randge($size(array)-1)。

qq_59846104的博客 1668

数组与类数组以及在类数组对象使用数组的方法

如何在类数组中使用数组的方法? 这里记点笔记,仅供学习参考。 文章目录判定数组1. Array.isArray( )2. instanceof 操作符3. 检测类属性数组类数组类数组对象使用数组方法总结 判定数组 1. Array.isArray( ) 给定一个未知的对象,判断它是否为数组? 我们通常用数组的一些特性来进行判断。在ES5中,可以使用 Array.isArray()函数来做这件事: Array.isArray([]); // true Array.isArray({}); //

Ashy- 在这里成长 2966

数组的方法,数组方法讲解

数组常用的方法

li_gui_s的博客 990

js数组方法

JavaScript中创建数组有两种方式: 使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(20); // 创建一个包含20项的数组 var arr3 = new Array("lily","lucy","Tom"); // 创建一个包含3个字符串的数组 使用数组字面量表示法: var arr...

苍穹尘的博客 9216

数组的常用属性和方法、哪些方法可以改变原数组

unshift() 方法将把它的参数插入arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为。如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

小草莓的博客 6866

数组作为方法参数

/* 数组作为方法参数 数组可以作为方法的参数,调用方法时,向方法的小括号进行传参,传递进去的其实是数组的地址值。 */ package com.xiaxia; public class Array11 {// array:数组 public static void main(String[] args) { int[] arrayA = { 5, 15, 25, 35, 45 }; t...

dearzls233的博客 2550

数组常用方法总结

flatMap()方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始。数组中某个指定的元素位置。方法可从已有的数组中返回选定的元素。

shadouqi的博客 1385

方法+数组

1.修饰符:现阶段直接使用固定搭配2.返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void3.方法名字:采用小驼峰命名4.参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开5.方法体:方法内部要执行的语句6.在java当中,方法必须写在类当中7.在java当中,方法不能嵌套定义8.在java当中,没有方法声明一说,方法定义放在函数调用前后都可以---------

2302_80250536的博客 1439

数组与方法

数组是一种数据结构,用于存储相同类型的多个元素。数组是一种强类型的,这意味着数组内的所有元素必须是相同的数据类型。数组是有序的,这意味着每一个元素都有一个位置(索引),可以通过索引访问数组中的元素。1、数据类型[] 数组名int[] arr;2、数据类型 数组名[]int arr[];Java方法是Java编程语言中的一个核心概念,‌它允许将一段可重复使用的代码封装起来,‌以便在程序的不同部分调用执行。‌方法可以看作是程序中的一个功能单元,‌通过定义方法,‌可以将复杂的程序分解为更小、‌更易于管理的部分。

qq_69331283的博客 1244
上一篇: Number,数学,时间的基本函数
下一篇: Symbol
MisterFahrenheit
博客等级 码龄7年 0粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值