jsアルゴリズムライブラリ(配列)
3973 ワード
1)テーマ記述要素itemの所与の配列arrにおける位置出力記述を探し出す.配列内にitemが存在する場合、配列内の要素の位置を返します.さもなければ-1を返します.
例の入力 [1,2,3,4],3出力 2
例の入力 [1,2,3,4]出力 10
例の入力 [1,2,3,4,2]を出力します. [1,3,4]
例の入力 [1,2,2,3,4,2,2]2出力 [1,3,4]
例の入力 [1,2,3,4] 10出力 [1,2,3,4,10]
例の入力 [1,2,3,4]出力 [1,2,3]
例の入力 [1,2,3,4]10出力 [10,1,2,3,4]
例の入力 [1,2,3,4]出力 [2,3,4]
例の入力 [1,2,3,4],['a','b','c',1]出力 [1,2,3,4,a',b',c',1]
例の入力 [1,2,3,4],[z],2出力 [1,2,'z',3,4]
例の入力 [1,2,4,4,3,4,3]4出力 3
例の入力 [1,2,4,3,1,5,3]出力 [1,3,4]
例の入力 [1,2,3,4]出力 [1,4,9,16]
例の入力 'abc defabc'出力 [0,6]
例の入力 [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
備考:方法は参考用であり、一意ではない.