首页 > 编程语言 >JavaScript操作数组

JavaScript操作数组

时间:2024-12-02 16:14:04浏览次数:4  
标签:arr 元素 const log JavaScript console 数组 操作

数组的遍历、插入、删除操作

在JavaScript中,数组是一种常见的数据结构,可以包含多个元素,并且可以进行遍历、插入和删除等操作。下面分别介绍数组的遍历、插入和删除操作。
1,数组的判断:
代码不能操作空对象(空指针),在操作数组之前,一般建议先判断数组是否为空。

let arr = [1, 2, 3]; // 假设有一个变量名为arr,判断arr是否为空
if (Array.isArray(arr)) {  
  console.log("arr 是数组");
  if (0 < arr.length) {  
    console.log("arr 数组非空");
  } else {  
    console.log("arr 数组是空,没有子元素");  
  }

} else {  
  console.log("arr 不是数组");  
}

2,数组的遍历:
使用for循环、forEach方法、for...of循环或map方法等,可以对数组进行遍历操作。下面是几种常见的遍历方式示例:

// for循环
const arr = [1, 2, 3, 4, 5];  
for (let i = 0; i < arr.length; i++) {  
  console.log(arr[i]); // 输出数组中的每个元素  
}

// forEach方法(箭头函数)
const arr = [1, 2, 3, 4, 5];  
arr.forEach(item => {  
  console.log(item);  
});  
// forEach方法(匿名函数)
const arr = [1, 2, 3, 4, 5];  
arr.forEach(function(element, index, array) {  
  console.log(element); // 输出数组中的每个元素  
});

// for...of循环
const arr = [1, 2, 3, 4, 5];  
for (const element of arr) {  
  console.log(element); // 输出数组中的每个元素  
}  

// map方法(匿名函数)
let arr = [1, 2, 3, 4];
let newArr = arr.map(function(x) { return x * 2; });
console.log(newArr); // [2, 4, 6, 8]
// map方法(箭头函数)
const arr = [1, 2, 3, 4, 5];  
arr.map(item => {  
  console.log(item);  
});
// map方法(使用thisValue)
const myObject = {a: 1};
arr.map((num) => { console.log(this); }, myObject);
// 现在,当回调函数被调用时,this将指向myObject,意味着可以从回调函数中访问myObject的属性和方法。

/* 注意返回值:Array.map()方法不会修改原数组,而是返回一个新数组,新数组中的元素是通过回调函数处理后的结果‌ */

3,数组的插入和删除操作:
在JavaScript数组中插入元素通常涉及以下几种方法:push、unshift、splice

// push方法(在数组末尾插入)
const arr = [1, 2, 3];  
arr.push(4); // arr现在是[1, 2, 3, 4]  

// unshift方法(在数组开头插入)
const arr = [1, 2, 3];  
arr.unshift(0); // arr现在是[0, 1, 2, 3]  

// splice方法(在任意位置插入)
const arr = [1, 2, 4];  
arr.splice(2, 0, 3); // arr现在是[1, 2, 3, 4],在索引2的位置插入3,不删除任何元素  

从JavaScript数组中删除元素可以通过以下方法实现:pop、shift、splice、filter

// pop方法(删除并返回数组最后一个元素)
const arr = [1, 2, 3, 4];  
const last = arr.pop(); // last是4,arr现在是[1, 2, 3]  

// shift方法(删除并返回数组第一个元素)
const arr = [1, 2, 3, 4];  
const first = arr.shift(); // first是1,arr现在是[2, 3, 4]  

// splice方法(删除任意位置的元素)
const arr = [1, 2, 3, 4];  
arr.splice(1, 2); // arr现在是[1, 4],从索引1开始删除2个元素  

// filter方法(根据条件删除元素)
const arr = [1, 2, 3, 4, 5];  
const newArr = arr.filter(function(element) {  
  return element !== 3; // 删除值为3的元素,newArr现在是[1, 2, 4, 5]  
});  
/* 请注意,filter方法不会修改原始数组,而是返回一个新数组。如果你想修改原始数组,你可以使用splice结合循环,或者使用其他会修改原始数组的方法。 */

标签:arr,元素,const,log,JavaScript,console,数组,操作
From: https://www.cnblogs.com/xiongzaiqiren/p/18582056

相关文章

  • JavaScript操作addEventListener监听触发事件
    JavaScript的addEventListener方法允许你为指定的HTML元素添加事件监听器。以下是一些常见的事件类型,可以使用addEventListener来监听它们:1,点击事件(click)点击事件(click):当用户点击元素时触发。element.addEventListener('click',function(){console.log......
  • 日常Mentor操作整理3(百度上都搜不到的内容)
    16边框以及铜皮倒角17PCB器件显示实心操作18PCB中器件丝印移动操作19丝印丢失恢复20晶振下放置避让区域平面--平面障碍物21符号批量替代操作(鼠标右键)......
  • leetcode 2841. 几乎唯一子数组的最大和
    2841.几乎唯一子数组的最大和使用unordered_map;unordered_multiset可能也可以,但是不如前者方便classSolution{public:longlongmaxSum(vector<int>&nums,intm,intk){intsize=nums.size();longlongnow=0;unordered_map<int,......
  • JavaScript操作DOM元素的classList
    在JavaScript中,classList是一个DOM元素属性,它提供了一组方法来添加、移除和切换元素的类名。classList属性返回一个DOMTokenList集合,表示元素的类名。这个集合提供了几个非常有用的方法,我们可以方便地对元素的类名进行操作,包括添加、移除、切换类名等。1,添加类名add(class1......
  • 前端开发本地搭建nginx服务相关操作
    问题引入:前端本地开发,处理bug等,需要连接不同后端或者测试环境服务,前端切换vue.config文件,然后重启耗费较长时间解决方案:利用nginx代理,以及启动重载速度快,解决此问题1.vue.config文件devServe代理修改为本地端口,例如代理本地8080端口devServer:{port:8189,open:......
  • stream常用操作
    JavaStream对象转换为Map方法1:通过收集器(Collector)使用toMap()方法Map<KeyType,ValueType>map=stream.collect(Collectors.toMap(obj->obj.getFieldKey(),obj->obj.getFieldValue()));方法2:结合Collectors的toMap()方法和Function.identity(),使用对象自身作为key......
  • C语言专题之文件操作相关函数
    在C语言中,文件操作是一系列重要且功能强大的功能,主要通过标准库<stdio.h>中的函数实现。以下是一些核心的文件操作函数及其详细说明:一、文件的打开与创建:fopen() 1.原型:FILE*fopen(constchar*filename,constchar*mode); 2.描述:fopen函数用于打开一个已经存在......
  • 操作系统之程序的链接与装入
    一、链接链接是将各个目标模块以及它们所需的库函数装配成一个完整的可执行文件的过程。根据链接的时间不同,链接方式可分为:静态链接:在程序运行之前,先将各目标模块及它们所需的库函数连接成一个完整的可执行文件,之后不再拆开。装入时动态链接:将各目标模块装入内存时,边装入......
  • FORTRAN动态数组分配失败导致运行时Access Violation
    上周写了个程序,大致结构是主程序调用多个模块中的例程。声明了一个动态数组,期望实现的功能是通过子程序读取文件数据,写入数组,然后通过该数组传出。该数组在主程序中声明如下:real(8),allocatable::array(:)在例程中声明如下:real(8),allocatable,intent(out)::array(:)由于......
  • 使用Function与BiConsumer动态获取与操作对象中的属性
    代码:packagecom.xxx.xxx.utils;importcom.alibaba.fastjson.JSON;importlombok.Data;importjava.util.function.BiConsumer;importjava.util.function.Function;/***函数测试*/publicclassTest{@DatapublicstaticclassTestObj{pri......