08_JavaScript數據操作方法_數組

目錄

一、創建一個數組

1.1 數組如何創建

字面量創建

構造函數創建

1.2 數組的長度

數組名.length?

1.3 數組的索引

1.4 數組如何循環遍歷

for 循環遍歷

for in

for of

二、數組的常用方法 (重點 面試)

push 方法

unshift 方法

pop

shift

splice

reverse

sort

concat

join

slice

練習

作業


?

一、創建一個數組

  • [] 裝起來的內容構成了一個數組 比如[2,8,'hello',true] 中間逗號分割

1.1 數組如何創建

分成兩種方式

  • 字面量創建

 // 字面量創建 var arr = []; //創建了一個空數組var arr1 = [11,22,33,44,55,99];// 創建了一個有內容的數組
  • 構造函數創建

    //構造函數創建var arr2 = new Array();// 創建了一個空數組 var arr3 = new Array("hello","js","!");// 創建了一個有內容的數組console.log(arr3);

1.2 數組的長度

數組名.length?

  • length 代表長度,數組里有多少個成員,length就是多少

var arr3 = new Array("hello","js","!");// 創建了一個有內容的數組
console.log(arr3.length);

1.3 數組的索引

  • 索引就是下標,是指一個數據在數組里面排在第幾個位置

  • 注意:下標從0開始的,所有編程語言里的下標都是從0開始

  • 想獲取數組的第幾個元素就 數組[索引]

var arr1 = [11, 22, 33, 44, 55, 99];// 創建了一個有內容的數組//構造函數創建
var arr3 = new Array("hello", "js", "!");// 創建了一個有內容的數組
// console.log(arr3.length);// 如何通過下標獲取數組的某一項
console.log(arr1[0]);//11
console.log(arr1[5]);//99
console.log(arr3[1]);//js

1.4 數組如何循環遍歷

  • for 循環遍歷

var arr = ["11","22","33","44","55","66"];
// 1  直接通過for循環遍歷
for(var i=0;i<arr.length;i++){//i  0-8  9次console.log(arr[i]); //0-8 的值
}i<arr.length  因為length就是數組的長度,就是一個數字,可以直接把它當成循環的次數
arr[i]  //i 代表 0 1 2 3 4...  相當于arr[0] arr[1] arr[2] arr[3]
  • for in

       // 2  for  in 遍歷數組  直接獲取到數組的索引for(idx in arr){console.log("數組下標是"+idx);// 可以獲取到下標,通過下標拿到數組的每一個元素console.log("數組元素是"+arr[idx]);}
  • for of

        // 3 for of  遍歷數組  直接獲取到數組的元素for(item of arr){console.log(item); }

二、數組的常用方法 (重點 面試)

  • push 方法

    • 就是在數組的末尾追加一個元素,返回添加之后的數組的長度

    • 會修改原數組的

var arr = [1,2,3,4,5];
var res = arr.push("哈哈哈");
console.log(arr,"添加后");
console.log(res);//6

unshift 方法

  • 就是在數組的最前邊添加一個元素,返回添加之后的數組的長度

  • 會修改原素組的

var arr = [1,2,3,4,5,6,8];
var res = arr.unshift("00000");
console.log(arr);
console.log(res);//8

pop

  • 用來刪除數組末尾的一個元素,返回刪除的元素

  • 會修改原數組

var arr = [1,2,3,4,5];
var res = arr.pop();
console.log(arr); //[1, 2, 3, 4]
console.log(res); //5

shift

  • 刪除數組最前邊的一個元素,返回刪除的元素

  • 會修改原數組

var arr = [1,2,3,4,5];var res = arr.shift();console.log(arr); //[2, 3, 4, 5]console.log(res); //1

splice

  • 用來截取數組中的某些內容,按照數組的索引來截取,返回截取的內容

  • 也會修改原數組

  • 語法1:數組.splice(從哪個索引位置開始截取,截取的個數)

  • 語法2:數組.splice(從哪個索引位置開始截取,截取的個數,替換的新元素) 第三個參數可以不寫

    var arr = ["hello","js","heihei","haha","html","Css"];var res = arr.splice(2,3);console.log(arr);//['hello', 'js', 'Css']console.log(res);三個參數var arr = ["正在加載","正在加載","正在加載","正在加載"];//arr.splice(0,1,"加載完成");//console.log(arr); //['加載完成', '正在加載', '正在加載', '正在加載']arr.splice(0,2,"加載完成")console.log(arr);//['加載完成', '正在加載', '正在加載']

reverse

  • 用來翻轉數組 把數組反過來

  • 會修改原數組

var arr = [1,2,3,4,5,6];
arr.reverse();
console.log(arr);?//[6, 5, 4, 3, 2, 1]// 數組的方法  是可以連用的arr.reverse().splice(0,2);console.log(arr);//[4, 3, 2, 1]

sort

  • 用來給數組排序的 給一個無序的數組排列成有序的

  • 會修改原數組

var arr = [8,2,1,3,6,9];
arr.sort();
console.log(arr); //[1, 2, 3, 6, 8, 9]  從小到大排序
===================================================// 從小到大排序
// arr.sort(function (a,b){
//     return a-b  // 從小到大排序
// })
// console.log(arr);// 從大到小排序
arr.sort(function (a,b){return b-a  // 從大到小排序
})
console.log(arr); //[9, 8, 6, 3, 2, 1]
=====================================================var arr1 = [{name:"張三",age:18
},{name:"李四",age:16
},{name:"王五",age:20
}]// 按照年齡排序
arr1.sort(function(a,b){return b.age - a.age
})
console.log(arr1);

concat

  • 用來數組合并的 把多個數組合在一起

  • 不會改變原來的數組,會返回一個新的合并后的數組

var arr = [1,2,3,4];
var arr1 = ["hello","js"];
var arr2 = [true,false];
var newArr = arr.concat(arr1)
console.log(arr,arr1); //?[1, 2, 3, 4] ?['hello', 'js']
console.log(newArr);//[1, 2, 3, 4, 'hello', 'js']

join

  • 是把數組里邊的每一項內容連接起來,變成一個字符串

  • 中間的連接符可以自己定義

  • 不會改變原數組 而是返回新的字符串

var arr = [1,2,3,4,5,6];
var str = arr.join();
var str1 = arr.join("");
var str2 = arr.join("-")
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(str);//1,2,3,4,5,6
console.log(str1);//123456
console.log(str2);//1-2-3-4-5-6

slice

  • 取出數組的一部分

  • 兩參數 arr.slice(開始位置,結束位置) 不包含結束位置

  • 不會改變原數組

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// 兩參數 `arr.slice(開始位置下標,結束位置下標)`   不包含結束位置
//var res = arr.slice(0, 3)
var res = arr.slice(4,6);
console.log(res); //?[1, 2, 3]
console.log(arr);//[1, 2, 3, 4, 5, 6, 7, 8, 9]

練習

1、山上有一口缸可以裝50升水,現在有15升水。老和尚讓小和尚去挑水,小和尚一次挑5升,問

小和尚挑幾次可以把水缸挑滿?編程實現

循環  幾次  不確定的
一次挑5升  一次往數組里push 5
var arr = [15]// - 次數  可能是多次   多次想到循環
// 次數不確定幾次  想寫個死循環  符合結束條件停止循環var arr = [15];while(true){// 1- 執行一次就往數組里 push 5arr.push(5)// 2- 等到數組里的數組元素和相加>=50 這個循環該停止var sum = 0;for(var i=0;i<arr.length;i++){sum = sum + arr[i];}if(sum>=50){// 桶滿了// 不需要循環了break;}}console.log(arr);console.log("挑了"+(arr.length-1)+"次");二選一var arr = [15]
var sum = 0
for (var i = 0; i < arr.length; i++) {sum += arr[i]if (sum < 50) {arr.push(5)} else {console.log(i);}
}

作業

1、定義一個含有30個整形元素的數組,按順序分別賦予從2開始的偶數,然后按順序每五個求出一個平均值,

放在另一個數組中并輸出 編程實現

var arr = [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40...];
不要寫死一個數組 定義一個空數組  循環 往空數組里push  每五個求出一個平均值
[6, 16,26, 36,46,56]

2、編寫一個函數,把數組中的每一個數都增加30%,返回一個新數組

var arr = [10,100,200];
function fn(){//XXXXX
}

3、編寫一個函數 ,判斷數組中是否存在55這個元素,返回布爾值 (選做)

var arr = [1,2,3,4,55];
var arr1 = [1,2,3,4,6,7,8];
function fn(){XXXXXX
}
fn(arr,55); //true
fn(arr1,55);//false

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/75534.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/75534.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/75534.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025.3.25總結

工作&#xff1a;這兩天工作都沒啥產出&#xff0c;主要是工作狀態不太好&#xff0c;周日晚上兩點睡&#xff0c;周一晚上一點睡。熬夜傷身&#xff0c;但就是控制不住自己&#xff0c;睡前總要刷刷手機。本來想睡前看會書的&#xff0c;但這行為及其不穩定&#xff0c;抖音也…

《Python實戰進階》第33集:PyTorch 入門-動態計算圖的優勢

第33集&#xff1a;PyTorch 入門-動態計算圖的優勢 摘要 PyTorch 是一個靈活且強大的深度學習框架&#xff0c;其核心特性是動態計算圖機制。本集將帶您探索 PyTorch 的張量操作、自動求導系統以及動態計算圖的特點與優勢&#xff0c;并通過實戰案例演示如何使用 PyTorch 實現…

初識哈希表

一、題意 給定一個整數數組 nums 和一個目標值 target&#xff0c;要求你在數組中找出和為目標值的那兩個整數&#xff0c;并返回它們的數組下標。你可以假設每種輸入只會對應一個答案。但是&#xff0c;數組中同一個元素不能使用兩遍。 示例&#xff1a; 給定 nums [2, 7, …

23種設計模式-創建型模式-單例

文章目錄 簡介問題1. 確保一個類只有一個實例2. 為該實例提供全局訪問點 解決方案示例重構前&#xff1a;重構后&#xff1a; 拓展volatile 在單例模式中的雙重作用 總結 簡介 單例是一種創建型設計模式&#xff0c;它可以確保一個類只有一個實例&#xff0c;同時為該實例提供…

python裁剪nc文件數據

問題描述&#xff1a; 若干個nc文件儲存全球的1850-2014年月尺度的mrro數據(或其他數據)&#xff0c;從1850-1到2014-12一共1980個月&#xff0c;要提取出最后35年1980.1~2014.12年也就是420個月的數據。 代碼實現 def aaa(input_file,output_file,bianliang,start_index,en…

深入解析 Spring Framework 5.1.8.RELEASE 的源碼目錄結構

深入解析 Spring Framework 5.1.8.RELEASE 的源碼目錄結構 1. 引言 Spring Framework 是 Java 領域最流行的企業級開發框架之一&#xff0c;廣泛用于 Web 開發、微服務架構、數據訪問等場景。本文將深入解析 Spring Framework 5.1.8.RELEASE 的源碼目錄結構&#xff0c;幫助開…

數據清洗:基于python抽取jsonl文件數據字段

基于python抽取目錄下所有“jsonl”格式文件。遍歷文件內某個字段進行抽取并合并。 import os import json import time from tqdm import tqdm # 需要先安裝&#xff1a;pip install tqdmdef process_files():# 設置目錄路徑dir_path r"D:\daku\關鍵詞識別\1623-00000…

Windows 下使用 Docker 部署 Go 應用與 Nginx 詳細教程

一、環境準備 1. 安裝必要軟件 Docker Desktop for Windows 下載地址&#xff1a;Docker Desktop: The #1 Containerization Tool for Developers | Docker 安裝時勾選"使用 WSL 2 引擎"&#xff08;推薦&#xff09; WSL 2&#xff08;Windows Subsystem for Li…

C# .net ai Agent AI視覺應用 寫代碼 改作業 識別屏幕 標注等

C# net deepseek RAG AI開發 全流程 介紹_c# 向量處理 deepseek-CSDN博客 視覺多模態大模型 通義千問2.5-VL-72B AI大模型能看懂圖 看懂了后能干啥呢 如看懂圖 讓Agent 寫代碼 &#xff0c;改作業&#xff0c;識別屏幕 標注等等。。。 據說是目前最好的免費圖片識別框架 通…

Docker多階段構建:告別臃腫鏡像的終極方案

Docker多階段構建:告別臃腫鏡像的終極方案 你是否遇到過這樣的問題:一個簡單的應用,Docker鏡像卻高達1GB?編譯工具、臨時文件、開發依賴全被打包進去,導致鏡像臃腫且不安全。 多階段構建(Multi-stage Build) 就是為解決這一問題而生——它像搬家時“只帶必需品”,讓生…

大模型應用開發之大模型工作流程

一&#xff1a;大模型的問答工作流程 1.1: 分詞和向量化 如上圖所示&#xff0c;我們如果讓大模型去回答問題&#xff0c;首先我們會輸入一些文字給到大模型&#xff0c;大模型本質上是個數學模型&#xff0c;它是理解不了人類的整句話的&#xff0c;所以它會把我們的對應的句…

SpringMVC 請求處理

SpringMVC 請求處理深度解析&#xff1a;從原理到企業級應用實踐 一、架構演進與核心組件協同 1.1 從傳統Servlet到前端控制器模式 SpringMVC采用前端控制器架構模式&#xff0c;通過DispatcherServlet統一處理請求&#xff0c;相比傳統Servlet的分散處理方式&#xff0c;實…

12屆藍橋杯—貨物擺放

貨物擺放 題目描述 小藍有一個超大的倉庫&#xff0c;可以擺放很多貨物。 現在&#xff0c;小藍有 nn 箱貨物要擺放在倉庫&#xff0c;每箱貨物都是規則的正方體。小藍規定了長、寬、高三個互相垂直的方向&#xff0c;每箱貨物的邊都必須嚴格平行于長、寬、高。 小藍希望所…

Reactor/Epoll為什么可以高性能?

在 Reactor 模式中使用 epoll_wait 實現低 CPU 占用率的核心原理是 ?事件驅動的阻塞等待機制&#xff0c;而非忙等待。以下通過分步驟解析其工作原理和性能優勢&#xff1a; void network_thread() {int epoll_fd epoll_create1(0);epoll_event events[MAX_EVENTS];// 添加U…

批量優化與壓縮 PPT,減少 PPT 文件的大小

我們經常能夠看到有些 PPT 文檔明明沒有多少內容&#xff0c;但是卻占用了很大的空間&#xff0c;存儲和傳輸非常的不方便&#xff0c;這時候通常是因為我們插入了一些圖片/字體等資源文件&#xff0c;這些都可能會導致我們的 PPT 文檔變得非常的龐大&#xff0c;今天就給大家介…

Java基礎 3.22

1.break練習 //1-100之內的數求和&#xff0c;求當和第一次大于20的當前數i public class Break01 {public static void main(String[] args) {int n 0;int count 0;for (int i 1; i < 100; i) {count i;System.out.println("當前和為" count);if (count &g…

高性能MySQL筆記

高性能MySQL筆記 《高性能MySQL》第1章 MySQL架構**第一章核心知識點總結****多選題**多選題答案**答案與詳解總結** 《高性能MySQL》第2章 可靠性程世界中的監控核心知識點多選題答案及解析重點鞏固方向 《高性能MySQL》第3章 Performance Schema**第三章核心知識點總結****多…

導游職業資格考試:從迷茫到清晰的備考指南

當你決定報考導游職業資格考試時&#xff0c;可能會感到有些迷茫&#xff0c;不知道從何處入手。別擔心&#xff0c;這份備考指南將帶你從迷茫走向清晰。? 第一步&#xff0c;全面了解考試。導游職業資格考試分為筆試和面試。筆試的四個科目各有特點&#xff0c;《政策與法律…

【BFS】《BFS 攻克 FloodFill:填平圖形世界的技術密碼》

文章目錄 前言例題一、 圖像渲染二、 島嶼數量三、島嶼的最大面積四、被圍繞的區域 結語 前言 什么是BFS&#xff1f; BFS&#xff08;Breadth - First Search&#xff09;算法&#xff0c;即廣度優先搜索算法&#xff0c;是一種用于圖或樹結構的遍歷算法。以下是其詳細介紹&am…

Linux安裝MySQL數據庫并使用C語言進行數據庫開發

目錄 一、前言 二、安裝VMware運行Ubuntu 1.安裝VMware 2.使用VMware打開Ubuntu 三、配置VMware使用網卡 1.添加NAT網卡 四、Linux下安裝MySQL數據庫 五、安裝MySQL開發庫 六、演示代碼 sql_connect.c sql_connect.h main.c中數據庫相關代碼 結尾 一、前言 由于最…