6 개의 자바 script 배열 의 실 용적 인 원형 확장 방법
20902 단어 JavaScript
배열 에 대한 원형 확장 을 시작 하기 전에 하나의 변수 가 배열 형식 인지 검증 하 는 방법 을 추가 할 필요 가 있 습 니 다.이 방법 은 임의의 데이터 형식의 변 수 를 매개 변수 로 받 아들 이 고 배열 이 라면 true 로 돌아 갑 니 다. 그렇지 않 으 면 알 고 있 습 니 다.
function isArray(a){
return a.constructor === Array ? true : false;
}
// Usage :
var isArrayA = [3];
var isArrayB = 3;
var isArrayResultA = isArray(isArrayA); //true
var isArrayResultB = isArray(isArrayB); //false
딥 카피
이 방법 은 매우 간단 하 다. 그것 은 깊이 있 게 복사 한 배열 을 되 돌려 준다.만약 당신 이 이것 에 대해 현혹 되 었 다 면, 여기, 이곳 을 클릭 하여 상세 한 설명 을 얻 으 세 요.
Array.prototype.copy = function(){
return [].concat(this);
};
// Usage :
var copyA = [0,1];
var copyResult = copyA.copy();
배열 의 중복 항목 제거
방법 유 니 크 는 중복 되 지 않 는 요소 만 포함 하 는 배열 을 되 돌려 줍 니 다.
Array.prototype.unique = function(){
var a = [];
var l = this.length;
for (var i = 0; i < l; i++) {
for (var j = i + 1; j < l; j++) {
if (this[i] === this[j])
j = ++i;
}
a.push(this[i]);
}
return a;
};
// Usage :
var uniqueA = [1,2,3,3,5,5,3,7];
var uniqueResult = uniqueA.unique();
// uniqueResult = [1, 2, 5, 3, 7];
배열 의 다른 요 소 를 가 져 옵 니 다.
하나의 배열 이 diff 방법 을 호출 하면 이 배열 의 요소 가 다른 배열 의 요소 와 다른 요 소 를 얻 을 수 있 습 니 다.좀 꼬 였 죠?해 보면 어떻게 된 건 지 알 수 있 을 거 야.
Array.prototype.diff = function(){
var a1 = this;
var a = a2 = null;
var n = 0;
while (n < arguments.length) {
a = [];
a2 = arguments[n];
var l = a1.length;
var l2 = a2.length;
var diff = true;
for (var i = 0; i < l; i++) {
for (var j = 0; j < l2; j++) {
if (a1[i] === a2[j]) {
diff = false;
break;
}
}
diff ? a.push(a1[i]) : diff = true;
}
a1 = a;
n++;
}
return a.unique();
};
// Usage :
var diffA = [1,2,3];
var diffB = [2,3,4];
var diffResult = diffA.diff(diffB);
// diff = [1];
병합 배열
이 방법 은 들 어 오 는 배열 을 합 쳐 합 친 새 배열 로 되 돌려 줍 니 다.
Array.prototype.union = function(){
var a = [].concat(this);
var l = arguments.length;
for (var i = 0; i < l; i++) {
a = a.concat(arguments[i]);
}
return a;
};
// Usage :
var unionA = [1,2,3];
var unionB = [2,3,4];
var unionResult = unionA.union(unionB);
// unionResult = [1, 2, 3, 2, 3, 4]
교차 하 다
intersect 는 몇 개의 배열 에 들 어 오 는 똑 같은 요 소 를 되 돌려 줍 니 다.
Array.prototype.intersect = function(){
if (!arguments.length)
return [];
var a1 = this;
var a = a2 = null;
var n = 0;
while (n < arguments.length) {
a = [];
a2 = arguments[n];
var l = a1.length;
var l2 = a2.length;
for (var i = 0; i < l; i++) {
for (var j = 0; j < l2; j++) {
if (a1[i] === a2[j])
a.push(a1[i]);
}
}
a1 = a;
n++;
}
return a.unique();
};
// Usage :
var intersectA = [1,2,3];
var intersectB = [2,3,4];
var intersectC = [3,4,5];
var intersectResult = intersectA.intersect(intersectB,intersectC);
// intersectResult = [3];
에 세이 화
한 배열 을 무 작위 로 정렬 하고 반환 값 은 undefined 입 니 다.
Array.prototype.randomize = function(){
this.sort(function(){
return ((Math.random() * 3) | 0) - 1;
});
};
// Usage :
var randomizeA = [4,7,3,7,3];
randomizeA.randomize();
아래 의 링크 는 본문의 모든 코드 와 용례 를 포함 하고 있다.다운로드 환영
코드 및 데모
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.