배열에 대한 공통 함수
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
popvar 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,ccIE에서 이 방법에 주의하세요. 다음은 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)
배열을 문자열로 변환하는 것과 동일합니다. , 배열뿐만 아니라 모든 객체가 이 메서드를 사용할 수 있습니다.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
변환은 요소에서만 수행할 수 있습니다. 전체 배열이 변환되면 배열을 변경하지 않고 반환합니다
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!