ホームページ  >  記事  >  ウェブフロントエンド  >  古典的な JS 能力評価の質問での配列型の分析の使用法_コード付き

古典的な JS 能力評価の質問での配列型の分析の使用法_コード付き

php是最好的语言
php是最好的语言オリジナル
2018-07-26 11:39:451046ブラウズ

現在古典的なjsの能力評価問題に取り組んでいるので、自分の能力と考えに従ってまとめてみました この記事は主に配列クラスについてまとめたものです。

1. 指定された配列内の要素 item の位置を検索します: arr.indexOf(item);

2. 指定された配列 arr 内のすべての要素の合計を計算します: arr.forEach(function(e){sum) = sum+e;})


注: array name.forEach(function(配列要素, 要素インデックス, 追加定義された配列){関数本体}) //返された配列は呼び出された配列のままです

配列名.map ( function(array element){function body}) //新しい配列を返します。呼び出し元の配列は変更されません

3. item と等しい所有権を持つ配列 arr 内の要素を削除します。配列 arr は変更しません。直接、結果を新しい配列で返します。

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

4. item に等しい配列 arr 内のすべての要素を削除し、指定された配列を直接変更して、結果を返します。

//方法一:从前往后遍历删除元素
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)// [4] を返します。a は配列内の [1,2,3,5]

5 ですarr 要素 item を最後に追加し、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 の最初の要素を削除します。配列 arr を直接変更しないでください。結果は新しい配列になります: return arr.slice(1);

9。配列 arr を直接変更しないでください。結果は新しい配列になります: return arr1.concat(arr2);

10。配列 arr のインデックスに要素 item を追加します。配列 arr を直接変更しないでください。結果は新しい配列になります: var newArray = arr.slice(index,0,item); return newArray;

11。統計配列 arr の項目の回数と等しくなります。

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 文字列操作の古典的な紹介

ビデオ チュートリアル: フロントエンド JS 開発における 27 の古典的な実践方法

以上が古典的な JS 能力評価の質問での配列型の分析の使用法_コード付きの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。