SAP Fiori开发中的JavaScript基础知识6 - 数组(Arrays)

news2024/11/26 3:24:17

1 背景

在本篇博客中,我将介绍JavaScript中数组(Arrays)的概念和用法。

2 数组

在JavaScript中,数组是一种特殊的对象,用于存储多个值在单个变量中。

2.1 创建数组

在JavaScript中,创建数组有以下有2种方式。

使用Array构造函数:

let fruits = new Array('apple', 'banana', 'mango');

使用字面量语法:

let fruits = ['apple', 'banana', 'mango'];

2.2 访问数组元素

你可以通过索引(基于0的数字)访问数组的元素:

let firstFruit = fruits[0]; // apple
let secondFruit = fruits[1]; // banana

你也可以通过索引修改数组的元素:

fruits[0] = 'pear'; // fruits is now ['pear', 'banana', 'mango']

2.3 数组的属性和方法

JavaScript数组有许多有用的属性和方法。例如:

  • length属性:返回数组的长度(元素的数量)。
  • indexOf( )方法:返回当前元素的索引值,若不存在,返回-1
  • includes()方法:检查某个元素是否存在,存在返回true,否则返回false
  • push()方法:向数组的末尾添加一个或多个元素,并返回新的长度。
  • pop()方法:删除并返回数组的最后一个元素。
  • shift()方法:删除并返回数组的第一个元素。
  • unshift()方法:向数组的开头添加一个或多个元素,并返回新的长度。
  • splice()方法:添加/删除数组的元素。
  • slice()方法:返回一个新的数组,包含从 start 到 end (不包括 end )的 arrayObject 中的元素。
  • join()方法:把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
let length = fruits.length; // 3

console.log( fruits.indexOf('apple') ); //输出0

console.log( fruits.includes('apple') ): //输出true

fruits.push('orange'); // fruits is now ['pear', 'banana', 'mango', 'orange']

let lastFruit = fruits.pop(); // lastFruit is 'orange', fruits is now ['pear', 'banana', 'mango']

let firstFruit = fruits.shift(); // firstFruit is 'pear', fruits is now ['banana', 'mango']

fruits.unshift('apple'); // fruits is now ['apple', 'banana', 'mango']

fruits.splice(1, 0, 'kiwi'); // fruits is now ['apple', 'kiwi', 'banana', 'mango']

let citrusFruits = fruits.slice(1, 3); // citrusFruits is ['kiwi', 'banana']

let allFruits = fruits.join(', '); // allFruits is 'apple, kiwi, banana, mango'

2.4 数组的遍历

forEach() 是 JavaScript 中的数组方法,用于遍历数组,并对每个元素执行操作。

以下是 forEach() 方法的基本语法:

array.forEach(function(currentValue, index, arr), thisValue)

参数说明:

  • currentValue(必需):当前正在处理的数组元素。
  • index(可选):当前正在处理的数组元素的索引。
  • arr(可选):包含当前元素的数组。
  • thisValue(可选):当执行函数时用作 “this” 的值。

以下是一个使用 forEach() 的基本示例:

let array = [1, 2, 3, 4, 5];

array.forEach(function(element) {
  console.log(element);
});

在这个例子中,forEach() 方法会遍历数组中的每个元素,并将每个元素打印到控制台。

你也可以使用箭头函数来简化代码:

let array = [1, 2, 3, 4, 5];
array.forEach(element => console.log(element) );

2.5 一些其它转换的方法

  • filter() 方法:移除不符合某一条件的元素,并返回新数组
  • map()方法:转换数组元素,并返回新数组
  • some()方法:检查是否有任何数组元素项满足给定的条件,返回一个布尔值
  • every()方法:检查是否每一个数组元素项都满足给定的条件,返回一个布尔值

有需要的同学可以自行查找相关文档,在本文中变不再逐一列举用法了。

2.6 示例代码

最后,我在下面给出了一些符合命名规范的代码示例,供参考。

let aColors = ['red', 'blue', 'green'];

console.log("----------------");
console.log(aColors);
console.log(aColors[0]);
console.log(aColors.length);
console.log(aColors.indexOf('red'));
console.log(aColors.push('yellow'));
console.log(aColors.length);

let aBasicColors = aColors.slice(0,3);
console.log(aBasicColors);

console.log("----------------");
let aTest = [];
console.log(aTest.length);
aTest[4] = 'test';
console.log(aTest.length);
aTest.push('test');
console.log(aTest.length);

console.log("----------------");
aColors.splice(3,0,'black'); //在index 3处插入black
console.log(aColors); 
aColors.splice(4,1); //删除 yellow
console.log(aColors); 

console.log("----------------");
aColors.forEach(function(value, index, arrary){
    console.log(index + '. color is ' + value);
});

这段代码的运行结果如下:
在这里插入图片描述

3. 小结

本文介绍JavaScript中数组(Arrays)的概念和用法,文中列举了JavaScript数组常用的一部分功能。为了充分利用数组,可以进一步查阅相关文档。希望本文对你有帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1563374.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙OS元服务开发说明:【WebGL网页图形库开发接口】

一、场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理,比如绘制彩色图形等。目前该功能仅支持使用兼容JS的类Web开发范式开发。 二、接口说明 表1 WebGL主要接口列表 鸿蒙OS开发更多内容↓点击HarmonyOS与OpenHarmony技术鸿蒙技术文档开发知识更…

反弹shell的方法和场景

Netcat反弹Shell 1 NC正向反弹shell Netcat简称NC,是一个简单、可靠的网络工具,被誉为网络界的瑞士军刀。通NC可以进行端口扫描、 反弹Shell、端口监听和文件传输等操作,常用参数如下: -c指定连接后要执行的shell命令-e指定连接后要执行的文件名-k配置 Socket一…

制造业工厂怎么通过MES系统来升级改造车间管理

在当今高度竞争的市场环境下,制造业企业需要不断提高生产效率,以在激烈的竞争中立于不败之地。而一种被广泛应用的方法就是利用MES控制系统,通过数字化管理和自动化控制来改造生产车间提升生产效率。 1、MES管理系统能够实现对生产过程的全面…

Linux环境基础和工具的使用

目录 1、Linux软件包管理器---yum 2、Linux开发工具 2.1、vim基本概念 2.2 vim基本操作 2.3 vim正常模式命令集 2.4 vim末行模式命令集 2.5 简单vim配置 2.5.1 配置文件的位置 3 Linux编译器--gcc/g的使用 3.1 背景知识 3.2 gcc完成 4 Linux调试器--gdb使用 4.1 背…

网页的血液——javascript

JavaScript 基础知识概述 1. JavaScript 介绍 JavaScript 是一种高级的、解释型的编程语言,它是一种基于对象的、事件驱动的语言,它允许开发者创建动态的网页。JavaScript 是一种脚本语言,它可以嵌入到 HTML 中,或者作为外部文件…

一篇商业稿件值千元,我的过稿经验大公开

撰写过上百篇企业和品牌稿件,甚至一篇商业稿件可值千元,可能很多人还不太相信,事实就是真的会有很多的企业和品牌愿意为此买单,是因为稿件带来的价值也是无法衡量的,直接给产品或是品牌带来更多的曝光甚至转化。今天伯…

一种新的基于STT-MRAM的时域内存计算单元

大数据、物联网和人工智能等技术的进步揭示了传统冯诺依曼的瓶颈架构,导致高能耗和有限的内存带宽。内存计算(IMC通过直接在内存中进行计算,提高了能效,提供了一个有前景的解决方案计算。现有的基于时域(TD&#xff09…

vue+elementUI搭建动态表头的表格

前提:以下代码是vue2项目结合elementUi完成的 数据结构 后端传来的数据是两个list,一个表头的list,一个表格内容的list // 表头 headTableAtts: [{ columnLabel: 姓名, columnName: name },{ columnLabel: 年龄, columnName: age },{ colu…

算法学习——LeetCode力扣动态规划篇4(377. 组合总和 Ⅳ、322. 零钱兑换、279. 完全平方数、139. 单词拆分)

算法学习——LeetCode力扣动态规划篇4 377. 组合总和 Ⅳ 377. 组合总和 Ⅳ - 力扣(LeetCode) 描述 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保…

苹果手机系统文件浏览技巧:实现高效的文件查找与管理

​ 目录 引言 用户登录工具和连接设备 查看设备信息,电池信息 查看硬盘信息 硬件信息 查看 基带信息 销售信息 电脑可对手机应用程序批量操作 运行APP和查看APP日志 IPA包安装测试 注意事项 引言 苹果手机与安卓手机不同,无法直接访问系统文件…

linux shell命令(进程管理、用户管理)

一、进程的概念 主要有两点: 1.进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)…

浅显易懂的简单说一下jvm内存模型

说起JVM大家都知道,它是运行java代码的基础。那么关于JVM 内存模型是不是很模糊 我用通俗易懂的方式说一下 我们这里先介绍 JVM 堆内存 它有两大块 包括 新生代内存,和老年代内存 。 为啥分为这两块, 你可以这样理解,&#xff…

【图论】【拓扑排序】1857. 有向图中最大颜色值

本文涉及的知识点 图论 拓扑排序 LeetCode1857. 有向图中最大颜色值 给你一个 有向图 ,它含有 n 个节点和 m 条边。节点编号从 0 到 n - 1 。 给你一个字符串 colors ,其中 colors[i] 是小写英文字母,表示图中第 i 个节点的 颜色 &#xf…

代码随想录算法训练营DAY14|C++二叉树Part.1|二叉树的递归遍历、二叉树的迭代遍历、二叉树的统一迭代法

文章目录 二叉树的递归遍历思路CPP代码 二叉树的迭代遍历思路前序遍历后序遍历后序遍历 二叉树的统一迭代法 二叉树的递归遍历 144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历 文章讲解:二叉树的递归遍历 视频讲解:每次写递归都要靠直…

寒冬已逝,“量子春天”正来

最近,全球对量子技术领域的私人投资有所下降,引发了一些观点认为这个领域可能正逐渐衰退。 政治家、资助者和投资者并不总是以科学为关注焦点。然而,某些科技领域偶尔会成为热点,正如20世纪50年代核能技术的兴起,那时人…

ios 之 netty版本swiftNio(socket创建)

SwiftNio 简介 用于高性能协议服务器和客户端的事件驱动、无阻塞的网络应用程序框架。 SwiftNIO是一个跨平台异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 这就像Netty,但是为Swift写的。 Xcode引入swiftNio 在实…

联诚发2024第二季度高质量发展工作推进会议顺利召开

4月1日上午,联诚发LCF以“稳中创新•产业升级•高质量发展”为主题的第二季度企业高质量发展工作推进大会在联诚发深圳总部隆重召开。会议总结上一季度的工作成果,分析研判当前形势,谋划部署下一季度工作,团结动员公司全体职工凝心…

Web3:数字化社会的下一步

随着技术的不断进步和互联网的发展,我们正逐渐迈入一个全新的数字化社会阶段。在这个新的时代,Web3作为数字化社会的重要组成部分,将发挥着举足轻重的作用。本文将探讨Web3在数字化社会中的意义、特点以及对未来发展的影响。 1. 重新定义数字…

设计模式——行为型——责任链模式Chain Of Responsibility

请求类 public class ApproverRequest {private int type;//请求批准的类型private float price;//请求的金额private int id;//请求的编号 } 审批人抽象类 public abstract class ApproverPerson {protected ApproverPerson next;protected String name;//审批过程public a…