jsアルゴリズムライブラリ(配列)

3973 ワード

1)テーマ記述要素itemの所与の配列arrにおける位置出力記述を探し出す.配列内にitemが存在する場合、配列内の要素の位置を返します.さもなければ-1を返します.
例の入力 [1,2,3,4],3出力  2
function indexOf(arr, item) {
    return arr.indexOf(item);
}
2)与えられた配列arrのすべての要素の合計入力記述を計算するテーマ記述:配列中の要素はすべてNumberタイプである.
例の入力 [1,2,3,4]出力 10
function sum(arr) {
    var sum = 0;
    arr.forEach(function(item,index){
        sum = sum + item;
    })
    return sum
}
3)テーマは、配列arrのすべての値がitemと等しい要素を除去することを説明します.配列arrを直接変更しないでください.結果は新しい配列に戻ります.
例の入力 [1,2,3,4,2]を出力します. [1,3,4]
function remove(arr, item) {
    var result = [];
    arr.forEach(function(arrItem){
        if(item != arrItem){
            result.push(arrItem);
        }
    })
    return result;
}
4)テーマ記述配列arrのすべての値がitemと等しい要素を除去し、与えられたarr配列に直接操作し、結果を返します.
例の入力 [1,2,2,3,4,2,2]2出力 [1,3,4]
function removeWithoutCopy(arr, item) {
    while(arr.indexOf(item) != -1){
        arr.splice(arr.indexOf(item),1)
    }
    return arr;
}
5)テーマ記述は、配列arrの末尾に要素itemを追加します.配列arrを直接変更しないでください.結果は新しい配列に戻ります.
例の入力 [1,2,3,4] 10出力 [1,2,3,4,10]
function append(arr, item) {
    var result = [];
    arr.forEach(function(arrItem){
        result.push(arrItem);
    })
    result.push(item);
    return result;
}
6)テーマは、配列arrの最後の要素を削除することを説明します.配列arrを直接変更しないでください.結果は新しい配列に戻ります.
例の入力 [1,2,3,4]出力 [1,2,3]
function truncate(arr) {
    var result = [];
    var len = arr.length -1;
    while(len--){
        result.unshift(arr[len]);
    }
    return result;
}
7)テーマ記述は、配列arrの先頭に要素itemを追加します.配列arrを直接変更しないでください.結果は新しい配列に戻ります.
例の入力 [1,2,3,4]10出力 [10,1,2,3,4]
function prepend(arr, item) {
    var result = [];
    result.push(item);
    arr.forEach(function(arrItem){
        result.push(arrItem);
    })
    return result;
}
//  
function prepend(arr, item) {
    var result = arr.slice(0);
    result.push(item);
    return result;
}
8)テーマ記述配列arrの最初の要素を削除します.配列arrを直接変更しないでください.結果は新しい配列に戻ります.
例の入力 [1,2,3,4]出力 [2,3,4]
function curtail(arr) {
    var result = arr.slice(0);
    result.shift();
    return result;
}
9)テーマは結合配列arr 1と配列arr 2を記述する.配列arrを直接変更しないでください.結果は新しい配列に戻ります.
例の入力 [1,2,3,4],['a','b','c',1]出力 [1,2,3,4,a',b',c',1]
function concat(arr1, arr2) {
    var currentArr1 = arr1.slice(0);
    var currentArr2 = arr2.slice(0);
    return currentArr1.concat(currentArr2)
}
10)テーマ記述配列arrのindexに要素itemを追加します.配列arrを直接変更しないでください.結果は新しい配列に戻ります.
例の入力 [1,2,3,4],[z],2出力 [1,2,'z',3,4]
function insert(arr, item, index) {
    var result = arr.slice(0);
    result.splice(index,0,item);
    return result;
}
12)テーマ記述統計配列arrの中の値はitemの要素の出現回数に等しい.
例の入力 [1,2,4,4,3,4,3]4出力 3
function count(arr, item) {
    var num = 0;
    arr.forEach(function(arrItem){
        if(item === arrItem){
            num ++;
        }
    })
    return num;
}
13)テーマ記述配列arrに重複して現れた要素を見つける
例の入力 [1,2,4,3,1,5,3]出力 [1,3,4]
function duplicates(arr) {
    var result = [];
    arr.forEach(function(item){
        if((arr.indexOf(item) != -1)&&(arr.indexOf(item) != arr.lastIndexOf(item))){
            if(result.indexOf(item) == -1){
                result.push(item)
            }
        }
    });
    return result;
}
14)テーマは配列arrの各要素に二次的を求めると記述されています.配列arrを直接変更しないでください.結果は新しい配列に戻ります.
例の入力 [1,2,3,4]出力 [1,4,9,16]
function square(arr) {
    var result = arr.slice(0);
    result.forEach(function(item,index){
        result[index] = item * item;
    })
    return result;
}
15)テーマ記述配列arrにおいて、検索値がitemと等しい要素が現れるすべての位置
例の入力 'abc defabc'出力 [0,6]
function findAllOccurrences(arr, target) {
    var result = [];
    for(var i =0;i
備考:方法は参考用であり、一意ではない.