>  기사  >  웹 프론트엔드  >  클래식 js 능력 평가 질문에서 배열 유형 분석 사용_코드 포함

클래식 js 능력 평가 질문에서 배열 유형 분석 사용_코드 포함

php是最好的语言
php是最好的语言원래의
2018-07-26 11:39:451002검색

현재 고전적인 JS 능력 평가 문제를 작성하고 있어서 본인의 능력과 생각에 따라 정리했습니다. 이번 글은 주로 배열 수업을 요약한 것입니다.

1. 주어진 배열에서 요소 항목의 위치를 ​​찾습니다. arr.indexOf(item)

2. arr 요소 합계: arr.forEach(function(e){sum=sum+e;})


참고: 배열 이름.forEach(function(배열 요소, 요소 인덱스, 추가 정의 배열){함수 본문}) //반환된 배열은 여전히 ​​호출된 배열입니다

array name.map(function(array element){function body}) //반환된 배열은 새 배열입니다. , 호출 배열은 수정되지 않습니다.

3. 소유권이 item과 동일한 배열 arr에서 요소를 제거합니다. 결과는 새 배열이 됩니다.

function remove(arr, item) {
    var newArray=[];
    arr.forEach(function(e){
        if(e!=item){
            newArray.push(e);
        }
    })
    return newArray;
}

4. arr 배열에서 item과 동일한 모든 요소를 ​​제거하고, 주어진 배열을 직접 수정한 후 결과를 반환합니다.

//方法一:从前往后遍历删除元素
function removeWithoutCopy(arr,item){
    for(i=0;i<arr.length;i++){
        if(item==arr[i]){
            arr.splice(i,1); //splice(定位元素索引[,删除元素个数,添加元素])
            i--;//i--的目的是因为删除了一个元素,在回到for时需要i++,会跳过一个元素
        }
    }
}

//方法二:从后往前遍历删除元素
function removeWithoutCopy(arr,item){
    for(i=arr.length-1;i>=0;i--){
        if(item==arr[i]){
            arr.splice(i,1); //删除时无需进行位移
        }
    }
}

참고: 배열 이름.splice(색인[, 번호, 요소 추가]), splice는 원래 배열을 직접 수정하는 것을 의미하며, 반환 값은 삭제된 요소로 구성된 배열입니다. 예: var a=[1,2,3,4,5];a.splice(3,1)//Return [4], a는 [1,2,3,5]

#🎜🎜 #5. arr 배열 끝에 요소 항목을 추가합니다. arr을 직접 수정하지 말고 새 배열을 반환합니다.

//方法一:直接使用数组的concat追加新的item,并返回新的数组
function append(arr, item) {
    return arr.concat(item);
}

//方法二:利用slice对原数组进行切分,产生新的数组,在对新数组进行push即可
function append(arr, item) {
    var newArray=arr.slice(0);
    newArray.push(item);
    return newArray;
}
//方法三:利用数组的map创建新的数组,最后对新数组push(item)即可
function append(arr, item) {
    var newArray=arr.map(function(e){
        return e;
    })
    newArray.push(item);
    return newArray;
}
//方法四:定义一个空数组,利用for/forEach进行赋值,再对新数组push(item)即可
function append(arr, item) {
    var newArray=[];
    arr.forEach(function(e){
        newArray.push(e);
    })
    newArray.push(item);
    return newArray;
}

6. 배열 arr의 마지막 요소를 삭제합니다. 결과는 새 배열입니다. return arr.slice(0,arr.length-1);#🎜🎜 ##🎜 🎜#7 배열 arr의 시작 부분에 요소 항목을 추가합니다. arr 배열을 직접 수정하지 마세요. 결과는 새 배열이 됩니다. var newArray=arr.slice(0);newArray.unshift(item)

8. . arr 배열을 직접 수정하지 마세요. 결과는 새로운 배열입니다. return arr.slice(1);

9 배열을 병합하세요. arr 배열을 직접 수정하지 마세요. 결과는 새 배열입니다. return arr1.concat(arr2);

10. 배열 arr의 인덱스에 요소 항목을 추가합니다. arr 배열을 직접 수정하지 마세요. 결과는 새 배열입니다. var newArray = arr.slice(0,item); return newArray;

11. array arr 값은 item 요소의 발생 횟수와 같습니다.

function count(arr, item) {
    var count=0;
    arr.forEach(function(e){
        if(e==item)
            count+=1;
    });
    return count;
}

12 배열 arr에서 반복되는 요소를 찾습니다. 입력: [1, 2, 4, 4, 3, 3, 1, 5, 3]. 출력: [1, 3, 4].

//方法一:利用indexOf和lastIndexOf进行判断
function duplicates(arr) {
    var result=[];
    arr.forEach(function(e){
        if(arr.indexOf(e)!=arr.lastIndexOf(e) && result.indexOf(e)==-1){
            result.push(e);
        }
    });
    return result;
}

//方法二:利用双重for循环进行判断
function duplicates(arr) {
    var result=[];
    for(i=0;i<arr.length-1;i++){
        for(k=0;k<result.length;k++){
            if(arr[i]==result[k])
                break;
        }
        if(k!=result.length) continue;
        for(j=i+1;j<arr.length;j++){
            if(arr[i]==arr[j]){
                result.push(arr[i]);
                break;
            }
        }
    }
    return result;
}

13 배열 arr에 있는 각 요소의 2승을 구합니다. 배열 arr을 직접 수정하지 마십시오. 결과는 새 배열이 됩니다.

//方法一:定义空数组,对arr进行遍历赋值
function square(arr) {
    var newArr=[];
    arr.forEach(function(e){
        newArr.push(e*e);
    });
    return newArr;
}
//方法二:直接使用map产生新的数组
function square(arr) {
    return arr.map(function(e){
        return e*e;
    })
}

14. arr 배열에서 item과 값이 같은 요소가 나타나는 모든 위치를 찾습니다.

function findAllOccurrences(arr, target) {
    var newArray=[];
    arr.forEach(function(e,i){
        if(e==target) newArray.push(i);
    })
    return newArray;
}

JS 클래식 질문에서 위의 질문 유형은 다음과 같습니다. 모든 배열, 코딩 표준 및 기능 모듈이 이어집니다.

관련 추천:


BootStrap 클래식 사례 분석

PHP 문자열 소개 클래식 운영

비디오 튜토리얼: 27 프론트엔드 JS 개발을 위한 클래식 실습

위 내용은 클래식 js 능력 평가 질문에서 배열 유형 분석 사용_코드 포함의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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