선임 프로그래머의 JavaScript 배열 요약
JavaScript의 data type은 JavaScript의 일상적인 개발에 사용되어야 합니다. array는 그 중 하나입니다. 이 기사에서는 PHP의 배열과 거의 차이가 없습니다. 선배 프로그래머들이 JavaScript 배열을 어떻게 요약하는지 살펴보세요
1. 배열의 개념
1.1 배열이란 무엇입니까
배열은 정렬된 데이터 목록을 의미합니다.
배열의 각 값을 배열의 요소라고 합니다.
배열의 각 요소에는 인덱스(아래 첨자, 인덱스)라고 하는 위치가 있습니다. 배열의 인덱스는 0
부터 시작합니다. 동일한 배열에 있는 요소의 유형에는 제한이 없습니다. 즉, Number, String, Boolean, Object 객체 등을 동일한 배열에서 사용할 수 있습니다. 어떤 종류든 동시에 넣을 수 있습니다. 배열의 요소도 다른 배열이 될 수 있습니다(다차원 배열을 구성함).
1.2 JavaScript 배열의 특징
모든 언어에는 배열 데이터 구조가 있지만 JavaScript 배열은 매우 다릅니다.
배열 길이는 동적으로 변경될 수 있습니다.
동일한 배열에 다양한 데이터 유형을 저장할 수 있습니다.
정렬된 데이터 모음
각 배열에는 배열의 요소 수를 나타내는 길이 속성이 있습니다.
2. 배열 생성
두 가지 유형의 배열이 있습니다. 기본 생성 방법: 리터럴 방법 및 Constructor
2.1 리터럴 방법
Array 리터럴: 모든 요소는 대괄호로 묶이고, 다른 요소는 쉼표로 구분됩니다.
//例如: [“a”, 5, “b”]
//创建一个长度为 3 的数组,并初始化了3 个元素:"abc" "b" "d" var colors = ["abc", "b", "d"]; //创建一个长度为 0 的空数组数组。里面一个值都没有 var colors = []; //不要在最后一个元素的后面添加逗号,添加逗号虽然语法没有问题,但是在不同的浏览器可能得到不同的结果 var colors = [5, 6, 7,]; //这样数组的长度可能为 3 也可能为 4。在不同浏览器会得到不同的结果应避免这种创建方式。
2.2 생성자 방식
생성자는 객체를 생성할 때 사용됩니다. 배열 생성자 유형 Array()
例如: new Array(数组长度);
//创建一个长度为 0 的空数组 var colors = new Array(); //创建一个长度为 5 的数组。每个数组的元素的默认值是 undefined。 var colors = new Array(5); //创建一个长度为 3 的数组,并且3个元素分别是 "blue" "red" "green" var colors = new Array("blue", "red", "green");
참고:
생성자를 사용하여 배열 객체를 생성할 때 마지막 요소 뒤에 괄호를 추가하지 마세요. 그렇지 않으면 오류가 보고됩니다. 이것은 잘못된 것입니다. new Array("a", )
생성자를 사용할 때 하나의 Number 값만 전달되는 경우 이 값은 >= 0이어야 하며, 그렇지 않으면 오류가 보고됩니다.
생성자를 사용하여 배열 객체를 생성할 때 new 키워드를 생략할 수 있습니다. 예: Array(5) 괜찮습니다.
3. 배열의 요소에 액세스하고 수정합니다.
인덱스를 사용하여 배열의 요소에 액세스합니다.
배열의 길이가 5이면 배열의 인덱스는 0,1,2,3,4
//创建一个长度为 5 的数据 var arr = [10, 20, 60, 5, 7]; alert(arr[0]); //获取下标为 0 的元素, 即:10 alert(arr[2]); //获取下标为 2 的元素, 即:60 arr[1] = 100; //把下标为 1 的元素赋值为100。
4입니다. 배열의 길이
4.1 array
각 배열에는 배열의 길이(즉, 요소의 개수)를 나타내는 length라는 속성이 있습니다.
var arr = [10, 20, 60, 5, 7]; alert(arr.length); //弹出:5
4.2 배열 길이 수정
일반적으로 강력한 형식의 언어에서는 배열 길이가 고정되어 있습니다. 즉, 배열이 성공적으로 생성되면 배열 길이를 변경할 수 없습니다.
그러나 JavaScript는 약한 유형의 동적 언어이므로 프로그램 실행 중에 필요에 따라 배열 길이가 동적으로 변경될 수 있습니다.
==배열 길이 속성은 읽기 전용이 아니지만 수정할 수 있습니다. ==
1. 길이 값을 설정하여 배열의 길이를 지정된 값으로 직접 수정합니다.
var arr = ["a", 8, "bc"]; //数组的长度为 3 arr.length = 6; // 修改数组的长度为 6 alert(arr.length); //数组的长度已经被修改为了 6 ,所以此处输出6. // 下标为 3, 4, 5 的元素的值为undefined的。 alert(arr[3]); //弹出:undefined的。 arr.length = 2; // 修改数组的长度为 2 ,则下标为 >= 的元素被自动从数组移除。
2. 마지막 요소에 값을 할당하여 요소의 길이를 동적으로 수정합니다.
var arr = [4, 6, 8]; // 给下标为 10 的元素赋值为 100. 由于最初长度为 3 ,这个赋值操作完成后,数组的长度会自动增长为11 arr[10] = 100; alert(arr.length); // 弹出:11 // 没有赋值的元素默认都为 undefined alert(arr[5]); //弹出:undefined alert(arr[20]); //弹出: undefined alert(arr.length); // 长度仍然为11. 上一行代码仅仅去访问元素,而没有赋值操作,则不会引起数组长度的变化
- for 루프
- for… )
-
5.1 일반적인 for 루프를 사용하여 배열을 순회합니다
var arr = [50, 20, 10, 5, 15, 6]; for(var i = 0; i < arr.length; i++){ //数组长度多长,就遍历多少次。 循环变量作为数组的下标 console.log(arr[i]); }1234
5.2 for...in 루프를 사용하여 배열을 순회합니다
for-in 문은 속성을 열거하는 데 사용할 수 있는 정확한 반복 문입니다. 객체와 배열의 요소.예:
var arr = [50, 20, 10, 5, 15, 6]; // 每循环一轮,都会把数组的下标赋值给变量index,然后num就拿到了每个元素的下标。 //注意:这里index是元素的下标,不是与元素 //对数组来说,index从从0开始顺序获取下标 for (var index in arr) { console.log(num); //循环输出: 0 1 2 3 4 5 } //这里var 关键字也是可以省略的,但是不建议省略。 for(i in arr){ console.log(arr[i]); }
5.3 for...each를 사용하여 배열을 탐색합니다.
ES5는 각 배열에 대해 array.forEach(함수)라는 새로운 메서드를 추가합니다. 이 메서드를 사용하면 자동으로 배열의 모든 요소를 탐색할 수 있습니다. array
var arr = [50, 20, 10, 5, 15, 6]; //调用数组的forEach方法,传入一个匿名函数 //匿名函数接受两个参数: 参数1--迭代遍历的那个元素 参数2:迭代遍历的那个元素的下标 //可以在匿名函数内部书需要的代码 arr.forEach( function(element, index) { alert(element); });
6.1 변환 방법
toString() 변환 방법:배열의 각 값을 연결한 쉼표로 구분된 문자열을 반환합니다.
<script type="text/javascript"> var arr = [50, 20, 10, 5, 15, 6]; alert(arr.toString()); // 50,20,10,5,15,6 alert(arr); // 50,20,10,5,15,6 当把一个对象直接给alert,则会调用这个对象的toString方法,然后再输出。 </script>
toString() 方法只能使用逗号连接,而 join() 方法可以使用指定的连接符连接
入栈其实就是把新的元素添加到数组的后面
出栈其实就是把数组中的最后一个元素从数组中移除
向队列头部添加元素(unshift)、从队列头部移除元素(shift)
向队列尾部添加元素、从队列尾部移除元素
如果找不到元素,则返回 -1
arr.contact(arrayX,arrayX,……,arrayX)
arr.slice(start,end) : 截取数组,并返回截取到的新数组
start:必须。从原数组中的start位置开始截取==(包括下标为start的元素)==。 如果是负数表示从尾部开始截取: -1表示最后一个元素
end: 可选。截取到指定位置==(不包括下标为end的元素)==。如果没指定,则指的是截取到最后一个元素
end要大于start,否则截取不到元素
arr.splice(index,howmany,item1,…..,itemX) 方法向/从数组中添加/删除元素,然后==返回被删除的元素组成的数组。==
必需。整数,规定添加/删除元素的位置,使用负数可从数组结尾处规定位置。
必需。要删除的元素数量。如果设置为 0,则不会删除元素。 如果添加元素这里应该是0
可选。向数组添加的新项目。
删除元素
添加元素
sortby 可选。规定排序顺序。必须是函数。
不传入参数的时候,是默认的升序排列。但是做升序排列的时候,是把每个元素转换成string之后,按照编码表中的顺序排序的。
纯数字的数组,还有一种更简洁的排序函数。
使用instanceof运算符。
使用Array.isArray(arr) 方法。
<script type="text/javascript"> var arr = [50, 20, 10, 5, 15, 6]; alert(arr.join("=")); // 50=20=10=5=15=6 </script>
6.2 栈方法
栈:一种数据结构。特点:FILO (先进后出)
向栈中存入元素 称之为 入栈(push)、从栈中移除元素称之为出栈(pop)。先入栈的元素在栈地下,后入栈的元素在栈顶。这两个动作都是对栈顶的元素进行操作。一般栈提供这两个操作足矣。
JavaScript中,支持像操作栈一样去操作数组。
<script type="text/javascript"> var arr = ["张三", "李四", "王五"]; //向栈中添加元素(最后添加的元素肯定在栈顶) 数组中的元素:"张三", "李四", "王五", "志玲" var len = arr.push("志玲"); //push方法返回添加成功后的数组的长度 alert(len); // 弹出:4 arr.push("a", "b"); //也可以向在push方法中传入多个参数,这样每个参数都会添加到数组中。 栈顶元素是 "b" //pop出栈,一次只能出栈一个元素 var item = arr.pop(); //把栈顶的元素从栈(数组)中移除。并返回移除的这个元素 alert(item); // 弹出:b </script>
说明:
6.2队列方法
队列也是一种数据结构。 特点:FIFO(先进先出)
JavaScript中,对数组的操作也提供了模拟队列的方法。
注意:对队列尾部的操作没有提供新的方法,使用push和pop可以完成相应的操作。
<script type="text/javascript"> //把arr当做队列对待,那么 队列头部元素就是 "张三", 队尾元素就是 "王五" var arr = ["张三", "李四", "王五"]; var firstItem = arr.shift(); //把队首元素从队列中移除,并返回移除的这个元素 alert(firstItem); //张三 alert(arr); // 李四, 王五 var len = arr.unshift("志玲"); //向队列头部添加元素,并返回添加成功后队列(数组)的长度 alert("数组长度:" + len); // 数组长度:3 alert(arr); // 志玲, 李四, 王五 arr.unshift("a", "b"); alert(arr); // a, b, 志玲, 李四, 王五 </script>
6.3 数组中元素的倒置
<script type="text/javascript"> var arr = ["张三", "李四", "王五"]; alert("数组倒置前:" + arr); //对数组元素进行倒置。 arr.reverse(); alert("数组倒置后:" + arr); </script>
注意:
==倒置操作是对原数组本身做了操作,返回的也是原数组对象,并不是一个新创建的数组。==
6.4 查找指定元素在数组中的索引
indexOf(item): 从前面开始向后查找 item 第一次出现的位置
lastIndexOf(item): 从尾部开始向前查找 item 第一次出现的位置
<script type="text/javascript"> var arr = ["张三", "张三", "李四", "王五", "张三", "李四", "王五"]; alert(arr.indexOf("张三")); // 0 alert(arr.lastIndexOf("张三")); // 4 </script>
indexOf(item, fromBack): 从第二个参数的位置开向后始查找 item 第一次出现的位置
lastIndexOf(item, fromForward): 从第二个参数的位置开始向前查找 item 第一次出现的位置
<script type="text/javascript"> var arr = ["张三", "张三", "李四", "王五", "张三", "李四", "王五"]; alert(arr.indexOf("张三", 2)); // 4 alert(arr.lastIndexOf("张三", 3)); // 1 </script>
6.4 获取新的数组
该方法用于连接两个或多个数组。至少传入一个参数,参数可以是数组也可以是元素。
==注意:该方法是返回的一个新的数组,原数组没有做任何改变==
<script type="text/javascript"> var arr1 = ["a", "b", "c"]; //把参数数组与arr1连接起来,并返回连接后的新数组 var newArr = arr1.concat(["c", "d"]); //新数组的长度是 5 alert(newArr.length); //原数组的长度还是 3 。原数组中的元素没有做任何变化 alert(arr1.length); //把两个元素和一个数组与原数组arr1连接起来,并返回新的数组 var newArr2 = arr1.concat("e", "f", ["g", "h"]); //新数组长度为:7 alert(newArr2.length); </script>
==注意:该方法是返回的一个新的数组,原数组没有做任何改变==
<script type="text/javascript"> var arr1 = ["a", "b", "c", "d", "e", "f"]; // 从下标为0的位置开始截取,截取到下标2,但是不包括下标为2的元素. 原数组没有任何的变化 var newArr = arr1.slice(0, 2); alert(newArr);// a, b alert(arr1.slice(1, 4)); // b,c,d //从下标为2的元素开始截取,一直到最后一个元素 alert(arr1.slice(2)); //c,d,e,f //从倒数第5个元素,截取到倒数第2个 alert(arr1.slice(-5, -2)); // b c d </script>
==注意:这个方法会对原数组做出修改。==
<script type="text/javascript"> var arr1 = ["a", "b", "c", "d", "e", "f"]; //因为第2个参数不为0,所以表示删除元素:从小标为1的位置开始删除,共删除2个元素。(2个中包括下标为1的元素) var deleted = arr1.splice(1, 2); //返回值为删除的元素组成的数组 //原数组 alert(arr1); // a,d,e,f alert(deleted); // b,c </script>
<script type="text/javascript"> var arr1 = ["a", "b", "c", "d", "e", "f"]; //因为第2参数为0,所以表示添加元素:从下标为1的位置插入元素。其余的元素会自动向后移动 var v = arr1.splice(1, 0, "m", "n"); // 因为是添加元素,所以返回的数组长度为 0 alert(v.length); // 0 alert(arr1); // a,m,n,b,c,d,e,f </script>
七、 数组排序
JavaScript中,所有的数组对象都提供了一个排序函数。
arr.sort(sortby) 方法用于对数组的元素进行排序。
<script type="text/javascript"> var arr1 = ["a", "ab", "fca", "cd", "eb", "f"]; arr1.sort(); //默认情况按照编码表中的顺序排列 alert(arr1); // a, ab, cd, eb, f, fca var arr2 = [10, 8, 6, 20, 30, 15]; arr2.sort(); console.alert(arr2); // 10,15,20,30,6,8</script>
从上面可以看出来,当数组中的元素是Number的时候,按照编码表排序并不太符合我们的预期,我们更想按照数字的大小排序。这时,我们可以传递一个 “比较函数”。
<script type="text/javascript"> /* sort方法进行排序的时候,会调用这个函数,来确定谁大谁小,从而来确定他们的位置。 排序函数的规则: 1、比较函数必须具有两个参数 num1, num2 2、若返回值 > 0, 则认为num1 > num2, 排序的时候num1在num2之后 3、若返回值 == 0,则认为num1== num2,排序的时候两个数的顺序就保持不变 4、若返回值 < 0, 则认为num < num2, 排序的时候num1在num2之前。 总结: 1、若num1 > num2 返回 正数, num1 < num2 返回 负数,则是升序 2、若num1 > num2 返回 负数, num1 < num2 返回 正数,则是降序 */ function sortNumber (num1, num2) { //升序 if(num1 > num2){ return 1; }else if(num1 == num2){ return 0; }else { return -1; } } var arr2 = [10, 8, 6, 20, 30, 15]; arr2.sort(sortNumber); console.log(arr2.toString()); </script>
//升序函数 function sortAsc(num1, num2){ return num1 - num2; //num1 > num2 就返回正数 } // 降序函数 function sortDesc(num1, num2){ return num2 - num1; //num1 > num2 就返回负数 }
八、 数组检测
如何检测一个对象是不是一个Array。
8.1 instanceof运算符
JavaScript中instanceof运算符会返回一个 Boolean 值,指出对象是否是特定构造函数的一个实例。
var arr = []; alert(arr instanceof Array); //true12
8.2 Array.isArray(arr) 方法
Array.isArray(arr) , 如果arr是数组,则返回true,否则返回false
var arr = []; alert(Array.isArray(arr)); //true alert(Array.isArray("abc")); // false
九、 二维数组
如果数组中的元素存储的是数组,则就构成了二维数组。
//数组中的每个元素都是数组,则就是一个二维数组 var towDimArr = [ [4, 5], [7, 8], [50, 9, 10], [5] ]; alert(towDimArr.length); //数组的长度为 4 //使用嵌套循环来遍历二维数组。 for (var i = 0; i < towDimArr.length; i++) { for (var j = 0; j < towDimArr[i].length; j++) { alert(towDimArr[i][j]); } }
详细的讲述了JavaScript中数组,大家可以详细的阅读一下哦!
相关推荐:
위 내용은 선임 프로그래머의 JavaScript 배열 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

얼굴 검출 및 인식 기술은 이미 상대적으로 성숙하고 널리 사용되는 기술입니다. 현재 가장 널리 사용되는 인터넷 응용 언어는 JS입니다. 웹 프런트엔드에서 얼굴 감지 및 인식을 구현하는 것은 백엔드 얼굴 인식에 비해 장점과 단점이 있습니다. 장점에는 네트워크 상호 작용 및 실시간 인식이 줄어 사용자 대기 시간이 크게 단축되고 사용자 경험이 향상된다는 단점이 있습니다. 모델 크기에 따라 제한되고 정확도도 제한됩니다. js를 사용하여 웹에서 얼굴 인식을 구현하는 방법은 무엇입니까? 웹에서 얼굴 인식을 구현하려면 JavaScript, HTML, CSS, WebRTC 등 관련 프로그래밍 언어 및 기술에 익숙해야 합니다. 동시에 관련 컴퓨터 비전 및 인공지능 기술도 마스터해야 합니다. 웹 측면의 디자인으로 인해 주목할 가치가 있습니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

주식 분석을 위한 필수 도구: PHP 및 JS에서 캔들 차트를 그리는 단계를 배우십시오. 인터넷과 기술의 급속한 발전으로 주식 거래는 많은 투자자에게 중요한 방법 중 하나가 되었습니다. 주식분석은 투자자의 의사결정에 있어 중요한 부분이며 캔들차트는 기술적 분석에 널리 사용됩니다. PHP와 JS를 사용하여 캔들 차트를 그리는 방법을 배우면 투자자가 더 나은 결정을 내리는 데 도움이 되는 보다 직관적인 정보를 얻을 수 있습니다. 캔들스틱 차트는 주가를 캔들스틱 형태로 표시하는 기술 차트입니다. 주가를 보여주네요

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

C 언어 학습의 매력: 프로그래머의 잠재력을 여는 것 지속적인 기술 발전으로 컴퓨터 프로그래밍은 많은 주목을 받는 분야가 되었습니다. 많은 프로그래밍 언어 중에서 C 언어는 항상 프로그래머들에게 사랑을 받아 왔습니다. C 언어의 단순성, 효율성 및 폭넓은 적용 덕분에 많은 사람들이 프로그래밍 분야에 입문하는 첫 번째 단계는 C 언어입니다. 이 기사에서는 C 언어 학습의 매력과 C 언어 학습을 통해 프로그래머의 잠재력을 발휘하는 방법에 대해 설명합니다. 우선, C 언어 학습의 매력은 단순함에 있습니다. C언어는 다른 프로그래밍 언어에 비해

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용
