[javascript] JavaScript로 배열을 쉽게 자르는 방법은 무엇입니까?

Linq에는를 Take()구현하는 모든 요소에서 주어진 수의 요소를 반환하기 위해 호출되는 편리한 연산자 메서드 가 있습니다 IEnumerable. 배열 작업을 위해 jQuery에 비슷한 것이 있습니까?

또는 다르게 질문합니다. Javascript에서 배열을 어떻게자를 수 있습니까?



답변

슬라이스 방법은

array.slice(0, 4);

처음 4 개의 요소를 반환합니다.

다른 값을 버리고 싶다면 변수에 다시 할당하는 것을 잊지 마십시오.

참고 : 이것은 일반 자바 스크립트이며 jquery가 필요하지 않습니다.


답변

(2 년 후 …) 진정으로 배열을 자르려는 경우 다음 length속성 을 사용할 수도 있습니다 .

var stooges = ["Moe", "Larry", "Shemp", "Curly", "Joe"];
stooges.length = 3; // now stooges is ["Moe", "Larry", "Shemp"]

참고 : 현재 길이보다 길이를 지정하면 아래와 같이 정의되지 않은 배열 요소가 도입됩니다.

var stooges = ["Moe", "Larry", "Shemp"];
stooges.length = 5;
alert(typeof stooges[4]); // alerts "undefined"

편집하다:

@twhitehead가 아래에 언급했듯이 정의되지 않은 요소의 추가는 다음과 같이 피할 수 있습니다.

var stooges = ["Moe", "Larry", "Shemp"];
stooges.length = Math.min(stooges.length, 5); 
alert(stooges.length)// alerts "3"


답변

자르는 방법 (끝에서 요소를 제거하여 배열 수정)하는 방법을 묻는 경우 splice 사용하십시오 .

var a1 = [2,4,6,8];
var a2 = a1.splice(-2,2); // a1=[2,4], a2=[6,8]

원본을 수정하지 않고 배열의 하위 집합을 검색하는 방법을 묻는 경우 slice 를 사용하십시오 .

var a1 = [2,4,6,8];
var a2 = a1.slice(-2); // a1=[2,4,6,8], a2=[6,8]

스플 라이스 수정, 슬라이스 액세스를 기억하십시오. 첫 번째 인수 인 음수는 배열 끝의 인덱스를 나타냅니다.


답변

.length 속성을 더 낮은 값으로 설정합니다.

공식 문서 :
Array.prototype.length


답변

요소를 가져 오고 배열에서 제거하려면 splice를 사용하십시오 .

배열의 요소를 유지하려면 slice


답변

배열에서 요소를 선택적으로 끌어 내려면 jQuery.grep 메소드를 사용할 수 있습니다 .

(jQuery 문서에서)

var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];

$("div").text(arr.join(", "));

arr = jQuery.grep(arr, function(n, i){
  return (n != 5 && i > 4);
});

$("p").text(arr.join(", "));

arr = jQuery.grep(arr, function (a) { return a != 9; });
$("span").text(arr.join(", "));


답변