暑期前端訓練day4


今天主要是有關周賽的,比賽的時候是用c++寫的并且是
ak了,但是就是想用js再復盤一下,也不能只是圖一時之爽,如果是換在實際的場景里面我是不是只會用 c++快速寫出來。

最近也要從js逐漸轉向ts,感覺Ts才是主旋律,js還是有很多不足的方,在此立個flag,這個星期徹底搞定Ts并且產出一篇較為詳細的文章。

主要復盤的點:

js的數組方法,還有多維數組怎么定義比較好。

  • 構造函數:
    new Array(): 當只有一個參數的時候,就會定義這個長度的一維數組,當有兩個或者兩個以上,就會把這些參數作為數組的內容。
const arr = new Array()// 空數組
const arr1 = new Array(3) // [undefined, undefined, undefined] 
const arr2 = new Array(1, 2, 3) // [1, 2, 3] 
  • Array.of():
    文檔:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/of
    沒見過的冷門函數,其實就是把里面的參數都當成是數組的內容。

  • length屬性,是個很神奇的屬性,之前還不知道改變這個數組本身也會改變,增加了長度就是擴展(從后擴展),反之就是截斷(從后截斷)。

  • shift(): 刪除開頭

  • unshift(): 添加東西到開頭

  • splice(): 很有用且很有意思的函數,可以增加(插入)或者是刪除元素,直接操作數組對象不是一個純函數,插入元素實際上就是刪除0個元素,然后把元素傳入,有點意思,這個參數就可以簡化了,具體api的使用如下:

    • 插入元素:splice(索引, 0, item1, item2, …, item_end),效果就是如果索引是0到length-1就會在前面加上item,如果是length就會是在最末尾加。

*indexof(item),找到item的索引,找到第一個,沒找到為-1.

*lastIndexOf(item),找到最后一個,沒找到為-1.

  • includes(item),是否包含item。

  • find(callback(x)): 找到第一個滿足callback的元素

  • findIndex(callback(x): 跟上面一樣,但是是找索引。

  • slice(startIndex, endIndex):截取子段,左閉右開。

  • fill(): 填充,一般用于初始化。

  • 高階數組的定義:

    • 首先是直接定義了: [[1, 2, 3], [4, 5]]
    • 然后是new Array(x).map().map()鏈式定義
    • 然后我自己寫了一個函數用來生成我想要的高維數組:
      函數主要是兩個參數,第一個是數組的維度,例如傳入[3, 2, 3],那么就是生成3 * 2 * 3的三維數組(矩陣) ,第二個是默認值。
      /**
    * create a Array 
    * 
    * @param {Array} shapeList 
    * @param {any} defaultValue 
    * @returns newArray
    */const createArray = (shapeList, defaultValue = 0) => {let s = 1let res = new Array(shapeList[0]).fill(defaultValue)let tmp = [res] while(s < shapeList.length) {const low = []for(let i = 0; i < tmp.length; ++ i) {for(let j = 0; j < tmp[i].length; ++ j ) {const cur = new Array(shapeList[s]).fill(0)tmp[i][j] = cur low.push(cur) }}tmp = low s ++; }return res 
    }const res = createArray([3, 4, 5])  
    console.log(res[0][0][0]);
    

重新回顧為不熟悉的,雖然只是一些api的使用,但是我覺得在開發的時候,這些api應該刻在腦子里面,因為太基本了。

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

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

相關文章

轉Go學習筆記(2)進階

前置&#xff1a;轉Go學習筆記1語法入門 目錄Golang進階groutine協程并發概念梳理創建goroutine語法channel實現goroutine之間通信channel與range、selectGoModulesGo Modules與GOPATHGo Modules模式用Go Modules初始化項目修改模塊的版本依賴關系Go Modules 版本號規范vendor …

無人機3控接力模式技術分析

一、運行方式 1. 接力控制流程 位置觸發切換&#xff1a;飛控中心實時監測無人機位置&#xff0c;當進入預設的切換路線&#xff08;如靠近下一個機庫或控制器覆蓋范圍&#xff09;時&#xff0c;觸發切換流程。 控制權請求與驗證&#xff1a; 當前控制器&#xff08…

Actor Critic對比PGValue-Based

目錄 回顧一下policy gradient&#xff1a; QAC算法&#xff1a; A2C- advantage actor critic 問題&#xff1a; 1. 為什么要結合起來&#xff0c;能解決什么問題&#xff1f; 1. 策略梯度 (PG) 的優勢與核心問題 2. 基于價值方法 (Value-Based) 的優勢與局限性 3. 潛…

buuctf-re

1.findKey 打開是C而且有點亂,所以找關鍵步驟有一個加密進去是不能反編譯的,有花指令, 這里有重復的部分把下面的NOP掉,重新定義函數’p’ 之后分析邏輯, // positive sp value has been detected, the output may be wrong! int __userpurge sub_40191F<eax>(int a1&l…

RuoYi、Vue CLI 和 uni-app 結合構建跨端全家桶方案

將 RuoYi、Vue CLI 和 uni-app 結合構建跨端全家桶方案&#xff0c;可以實現一套代碼管理后臺系統&#xff08;PC&#xff09;和移動端應用&#xff08;H5/小程序/App&#xff09;。以下是整合思路和關鍵步驟&#xff1a; 技術棧分工 RuoYi&#xff1a;后端框架&#xff08;Spr…

二十九、windows系統安全---windows注冊表安全配置

環境 windows server 2012 原理 注冊表簡介: 注冊表&#xff08;Registry&#xff0c;繁體中文版Windows操作系統稱之為登錄檔&#xff09;是Microsoft Windows中的一個重要的數據庫&#xff0c;用于存儲系統和應用程序的設置信息。早在Windows 3.0推出OLE技術的時候&#…

Android 一幀繪制流程

Android 一幀繪制流程揭秘&#xff1a;主線程與 RenderThread 的雙人舞 核心目標&#xff1a;60幀/秒的絲滑體驗&#xff0c;意味著每幀必須在16.67ms內完成所有工作&#xff01; 想象一下屏幕刷新就像放映電影&#xff0c;一幀接一幀。Android系統為了播放這“電影”&#xff…

智能網盤檢測軟件,一鍵識別失效鏈接

軟件介紹 今天為大家推薦一款由吾愛論壇大神開發的網盤鏈接檢測工具&#xff0c;專為網絡資源愛好者設計&#xff0c;可快速批量檢測分享鏈接的有效性。 核心功能 這款工具能夠智能識別各類網盤分享鏈接的有效狀態&#xff0c;用戶只需批量粘貼鏈接&#xff0c;軟件便會自…

408第三季part2 - 計算機網絡 - 應用層

理解 客戶機不能直接通信&#xff0c;要通過服務器才行 P2P可以 先記個名字 看圖記查詢流程 然后迭代就是 主機到本地 本地先查根&#xff0c;然后返回&#xff0c;再查頂級&#xff0c;然后返回&#xff0c;再查權限 然后注意這里主機到本地都是遞歸查詢&#xff0c;其他的…

Modern C++(七)類

7、類 7.1、類聲明 前置聲明&#xff1a;聲明一個將稍后在此作用域定義的類類型。直到定義出現前&#xff0c;此類名具有不完整類型。當代碼僅僅需要用到類的指針或引用時&#xff0c;就可以采用前置聲明&#xff0c;無需包含完整的類定義。 前置聲明有以下幾個作用&#xf…

4-6WPS JS宏自定義函數變長參數函數(實例:自定義多功能數據統計函數)學習筆記

一、自定義函數:自定義多功能數據統計函數。示例1&#xff1a;function jia1(x,...arr){//自定義變長函數&#xff0c;X第一參數&#xff0c;...arr為變長參數可放入無數個參數&#xff0c;就像是數組return xWorksheetFunction.Sum(arr)//返回&#xff0c;X第一參數WorksheetF…

HDMI延長器 vs 分配器 vs KVM切換器 vs 矩陣:技術區別與應用場景

在音視頻和計算機信號傳輸領域&#xff0c;延長器、分配器、切換器和矩陣是四種常見設備&#xff0c;它們的功能和應用場景有顯著區別。以下是它們的核心差異對比&#xff1a; 1. 延長器&#xff08;Extender&#xff09; 功能&#xff1a; ? 將信號&#xff08;如HDMI、Displ…

從0到1解鎖Element-Plus組件二次封裝El-Dialog動態調用

技術難題初登場 家人們&#xff0c;最近在開發一個超復雜的后臺管理系統項目&#xff0c;里面有各種數據展示、表單提交、權限控制等功能&#xff0c;在這個過程中&#xff0c;我頻繁地使用到了element-plus組件庫中的el-dialog組件 。它就像一個小彈窗&#xff0c;可以用來顯示…

數據結構實驗習題

codeblock F2是出控制臺 1.1 /* by 1705 WYY */ #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 #define YES 1 #define NO 0 #define OK 1 #define ERROR 0 #define SUCCESS 1 #define UNSUCCESS 0 #define OVERFLOW -2 #define UNDERF…

PyTorch 2.7深度技術解析:新一代深度學習框架的革命性演進

引言:站在AI基礎設施變革的歷史節點 在2025年這個充滿變革的年份,PyTorch團隊于4月23日正式發布了2.7.0版本,隨后在6月4日推出了2.7.1補丁版本,標志著這個深度學習領域最具影響力的框架再次迎來了重大突破。這不僅僅是一次常規的版本更新,而是一次面向未來計算架構和AI應…

LTspice仿真10——電容

電路1中電容下標m5&#xff0c;表示5個該電阻并聯電路2中ic1.5v&#xff0c;表示電容初始自帶電量&#xff0c;電壓為1.5v

C#事件驅動編程:標準事件模式完全指南

事件驅動是GUI編程的核心邏輯。當程序被按鈕點擊、按鍵或定時器中斷時&#xff0c;如何規范處理事件&#xff1f;.NET框架通過EventHandler委托給出了標準答案。 &#x1f50d; 一、EventHandler委托&#xff1a;事件處理的基石 public delegate void EventHandler(object se…

全面的 Spring Boot 整合 RabbitMQ 的 `application.yml` 配置示例

spring:rabbitmq:# 基礎連接配置 host: localhost # RabbitMQ 服務器地址port: 5672 # 默認端口username: guest # 默認用戶名password: guest # 默認密碼virtual-host: / # 虛擬主機&#xff08;默認/&…

Win32 API實現串口輔助類

近期需要使用C++進行串口通訊,將Win32 API串口接口進行了下封裝,可實現同步通訊,異步回調通訊 1、SerialportMy.h #pragma once #include <Windows.h> #include <thread> #include <atomic> #include <functional> #include <queue> #inclu…

Python-執行系統命令-subprocess

1 需求 2 接口 3 示例 4 參考資料 Python subprocess 模塊 | 菜鳥教程