>  기사  >  웹 프론트엔드  >  JavaScript에서 일반적으로 사용되는 배열 함수 사용 예 요약

JavaScript에서 일반적으로 사용되는 배열 함수 사용 예 요약

伊谢尔伦
伊谢尔伦원래의
2017-07-25 11:52:291285검색

배열에 대한 공통 함수

concat

기존 배열 뒤에 배열을 추가하고 기존 배열에 영향을 주지 않고 새 배열을 반환합니다.

var a = [123];
var b = "sunnycat";
var c =    ["www",21,"ido"];
var d = {x:3.14, y:"SK"};
var e = [1,2,3,4,[5,6,[7,8]]];
alert(a.concat(b));     // -> 123,sunnycat
alert(a);  //    -> 123
alert(b.concat(c, d));       // -> sunnycatwww,21,ido[object    Object]
alert(c.concat(b));     // -> www,21,ido,sunnycat
alert(e.concat(11,22,33).join(" #    "));       // -> 1 # 2 # 3    # 4 # 5,6,7,8 # 11 # 22 # 33

배열이나 문자열에만 사용할 수 있다는 점에 유의해야 합니다. 연결(앞의 a)이 숫자값, 부울값, 객체인 경우 문자열이 배열에 연결되면 해당 문자열이 배열의 첫 번째 요소와 연결되어 오류가 발생합니다. 배열을 사용하여 새 요소를 형성하는 반면, 배열 연결 문자열은 새 요소를 추가합니다(이 점에 대해서는 전체 내용을 알지 못합니다. 세부 사항을 알고 있는 경우 공개해 주시기 바랍니다). 배열과 개체가 포함된 배열의 경우 연결 후에도 그대로 유지됩니다. .

join

지정된 구분 기호를 사용하여 배열을 문자열에 연결합니다.

var a = ['a','b','c','d','e','f','g'];
lert(a.join(","));   // -> a,b,c,d,e,f,g 相当于a.toString()
alert(a.join(" x "));  // -> a x b x c x d x e x f x g

이것은 이해하기 쉽지만 배열에 배열이 있는 경우 1차원 배열만 변환된다는 점에 유의해야 합니다.

var a =    ['a','b','c','d','e','f','g',[11,22,33]];
alert(a.join(" * "));  // -> a * b * c * d * e * f * g *    11,22,33

와 같이 기본 toString() 대신 Join으로 지정된 문자열 연결을 사용하지 않습니다. 참고: 배열 내부의 배열은 *

pop

으로 연결되지 않습니다. 배열의 마지막 요소를 삭제하고 해당 요소를 반환합니다

var a =    ["aa","bb","cc"];
document.write(a.pop());    // -> cc
document.write(a);        // -> aa, bb

참고: 배열이 비어 있으면 정의되지 않은 값이 반환됩니다

push

배열 뒤에 배열을 추가하고 배열의 새 길이를 반환합니다.

var a =    ["aa","bb","cc"];
document.write(a.push("dd"));    // -> 4
document.write(a);        // -> aa,bb,cc,dd
document.write(a.push([1,2,3]));  // -> 5
document.write(a);        // -> aa,bb,cc,dd,1,2,3

concat과의 차이점은 concat이 원래 배열에 영향을 주지 않고 직접 새 배열을 반환하는 반면, push는 원본 배열을 직접 수정하고 배열의 새 길이를 반환하는 반면

sort

배열 정렬, 먼저 예를 살펴보겠습니다

var a = [11,2,3,33445,5654,654,"asd","b"];
alert(a.sort()); // -> 11,2,3,33445,5654,654,asd,b

결과가 매우 네, 정렬은 정수 크기를 기준으로 하는 것이 아니라 문자열 비교이므로 첫 번째 문자의 ANSI 코드를 비교하는 것입니다. 동일하면 두 번째 문자를 가져와서 비교합니다. 다시 정수 값으로 비교하려면 다음을 수행하세요.

var a = [11,2,3,33445,5654,654];
a.sort(function(a,b) {
return a - b;
});
alert(a);  //    -> 2,3,11,654,5654,33445

sort() 메서드는 코드의 함수입니다. 숫자가 아닌 항목은 더 이상 정렬할 수 없습니다. 여기서는 자세히 다루지 않겠습니다

reverse

역 정렬과 배열()은 동일하므로 비교를 위해 첫 번째 문자의 ASCII 값을 가져옵니다

var a = [11,3,5,66,4];
alert(a.reverse());  // -> 4,66,5,3,11

배열에도 배열이 포함되어 있으면, 객체로 처리되어 요소가 추출되지 않습니다

var a = ['a','b','c','d','e','f','g',[4,11,33]];
alert(a.reverse());  // -> 4,11,33,g,f,e,d,c,b,a
alert(a.join(" * "));  // -> 4,11,33 * g * f * e * d * c * b * a

논리적으로는 11의 마지막 행이어야 합니다. 여기서 4,11,33은 완전한 객체 비교로 간주되므로 첫 번째 순위가 됩니다. 이해가 안 된다면, Join()을 사용하여 문자열을 연결하면 더 명확해집니다.

shift

pop

var a =    ["aa","bb","cc"];
document.write(a.shift());   // -> aa
document.write(a);        // -> bb,cc

과 유사하게 배열의 첫 번째 요소를 삭제하고 반환합니다. 배열이 비어 있으면 정의되지 않은 상태를 반환

unshift

shift의 반대, 배열 앞에 요소를 추가하고 배열의 새 길이를 반환합니다.

var a =    ["aa","bb","cc"];
document.write(a.unshift(11));   // -> 4 注:IE下返回undefined
document.write(a);        // -> 11,aa,bb,cc
document.write(a.unshift([11,22]));   // -> 5
document.write(a);        // -> 11,22,11,aa,bb,cc
document.write(a.unshift("cat"));  // -> 6
document.write(a);        // -> cat,11,22,11,aa,bb,cc

IE에서 이 방법에 주의하세요. 다음은 Microsoft 버그처럼 보이는 정의되지 않음을 반환합니다. Firefox

slice

에서 배열의 새로운 길이를 올바르게 사용하여 아래 첨자부터 시작하여 배열 조각

var a = ['a','b','c','d','e','f','g'];
alert(a.slice(1,2));  // -> b
alert(a.slice(2));    // -> c,d,e,f,g
alert(a.slice(-4));   // -> d,e,f,g
alert(a.slice(-2,-6));    // -> 空

a.slice(1,2)을 반환할 수 있습니다. 1, 아래 첨자 2 사이의 숫자. 아래 첨자 2가 있는 요소는 포함되지 않습니다. 매개변수가 하나만 있는 경우 기본값은 배열의 끝입니다. -4는 맨 아래에서 네 번째 요소를 의미하므로 4개의 요소가 포함됩니다. 두 번째부터 마지막 ​​줄까지의 마지막 줄이 뒤로 가로채기 때문에 분명히 이전 요소를 얻을 수 없으므로 빈 배열이 반환됩니다. a.slice(-6, -2), b,c,d, e



splice

배열에서 조각의 요소를 삭제하고 삭제된 요소를 반환합니다

var a = [1,2,3,4,5,6,7,8,9];
document.write(a.splice(3,2));    // -> 4,5
document.write(a);        // -> 1,2,3,6,7,8,9
document.write(a.splice(4));  // -> 7,8,9 注:IE下返回空
document.write(a);        // -> 1,2,3,6
document.write(a.splice(0,1));    // -> 1
document.write(a);        // -> 2,3,6
document.write(a.splice(1,1,["aa","bb","cc"]));   // -> 3
document.write(a);        // -> 2,aa,bb,cc,6,7,8,9
document.write(a.splice(1,2,"ee").join("#")); // -> aa,bb,cc#6
document.write(a);        // -> 2,ee,7,8,9
document.write(a.splice(1,2,"cc","aa","tt").join("#"));  // -> ee#7
document.write(a);        // -> 2,cc,aa,tt,8,9
IE에서는 이 메서드의 두 번째 매개 변수가 필요합니다. 채워지면 기본값은 0입니다(예: a.splice(4)). IE에서는 빈 값을 반환합니다. 효과는 a.splice(4,0)

toString

배열을 문자열로 변환하는 것과 동일합니다. , 배열뿐만 아니라 모든 객체가 이 메서드를 사용할 수 있습니다.

var a =    [5,6,7,8,9,["A","BB"],100];
document.write(a.toString());    // -> 5,6,7,8,9,A,BB,100
var b = new Date()
document.write(b.toString());    // -> Sat Aug 8 17:08:32 UTC+0800    2009
var c = function(s){
alert(s);
}
document.write(c.toString());    // -> function(s){ alert(s); }
Boolean 값은 true 또는 false를 반환하고 객체는 [객체 객체 이름]을 반환합니다. Join() 메서드와 비교할 때, Join()은 1차원 배열만 대체합니다. toString()은 전체 배열(1차원이든 다차원이든)을 완전히 평면화하는 동시에 이 방법을 10진수, 2진수, 8진수 및 16진수 변환에 사용할 수 있습니다. 예:

var a =    [5,6,7,8,9,"A","BB",100];
for(var i=0; i<a.length; i++){
document.write(a[i].toString()    + " 的二进制是 "    + a[i].toString(2) + " ,八进制是 " + a[i].toString(8) + " ,十六进制是 " + a[i].toString(16));  //    -> 4,5
}

출력 결과:

5 的二进制是 101 ,八进制是 5 ,十六进制是 5
6 的二进制是 110 ,八进制是 6 ,十六进制是 6
7 的二进制是 111 ,八进制是 7 ,十六进制是 7
8 的二进制是 1000 ,八进制是 10 ,十六进制是 8
9 的二进制是 1001 ,八进制是 11 ,十六进制是 9
A 的二进制是 A ,八进制是 A ,十六进制是 A
BB 的二进制是 BB ,八进制是 BB ,十六进制是 BB
100 的二进制是 1100100 ,八进制是 144 ,十六进制是 64

변환은 요소에서만 수행할 수 있습니다. 전체 배열이 변환되면 배열을 변경하지 않고 반환합니다

toLocaleString

Date 객체에 주로 사용되는 로컬 형식 문자열을 반환합니다

var a = new Date();
document.write(a.toString());    // -> Sat Aug 8 17:28:36 UTC+0800    2009
document.write(a.toLocaleString());   // -> 2009年8月8日 17:28:36
document.write(a.toLocaleDateString());   // -> 2009年8月8日

차이점은 toString( )는 표준 형식을 반환하고 toLocaleString()은 로컬 형식의 완전한 날짜를 반환합니다([제어판]>>[지역 및 언어 옵션]에서 [시간] 및 [자세한 날짜] 형식을 수정하여), toLocaleDateString() 시간이 없다는 점을 제외하면 toLocaleString()과 동일합니다

valueOf

는 다른 개체에 따라 반환됩니다. 다른 원래 값은 출력에 사용될 때 toString()과 유사하지만 toString()은 문자열을 반환합니다. type이고 valueOf()는 원래 객체를 반환합니다. type

var a = [1,2,3,[4,5,6,[7,8,9]]];
var b = new Date();
var c = true;
var d = function(){
alert("sunnycat");
};
document.write(a.valueOf());    // -> 1,2,3,4,5,6,7,8,9
document.write(typeof (a.valueOf()));  // -> object
document.write(b.valueOf());    // -> 1249874470052
document.write(typeof(b.valueOf()));  // -> number
document.write(c.valueOf());    // -> true
document.write(typeof(c.valueOf()));  // -> boolean
document.write(d.valueOf());    // -> function () {    alert("sunnycat"); }
document.write(typeof(d.valueOf()));  // -> function

배열도 객체이므로 typeof(a.valueOf())는 object를 반환하고 반환된 객체는 여전히 다차원 배열입니다

var a = [1,2,3,[4,5,6,[7,8,9]]];
var aa = a.valueOf();
document.write(aa[3][3][1]); // -> 8
Date 객체는 숫자를 반환합니다. 1970년 1월 1일 이후 밀리초 단위이며 Math 및 Error 객체에는 valueOf 메서드가 없습니다.

위 내용은 JavaScript에서 일반적으로 사용되는 배열 함수 사용 예 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.