第五章:引用タイプ
12591 ワード
1:Array.isArray()メソッド
この方法の目的は,ある値が配列であるか否かを決定することである.
2:スタックメソッド
push()とpop()メソッド
3:キューメソッド
Push()とshift()メソッド
unshift()メソッド
unshift()メソッドとshift()メソッドは、配列の先端に任意のアイテムを追加し、新しい配列の長さを返すために使用されます.したがって、unshift()メソッドとpop()メソッドを併用すると、配列の先端にアイテムを追加し、配列の末端にアイテムを除去する逆方向からキューをシミュレートできます.
4:並べ替え方法
配列に2つの直接ソートメソッドreverse()とsort()が存在する
reverse()メソッドは配列項目の順序を反転します
デフォルトでは、sortメソッドは配列アイテムを昇順に並べ、sort()メソッドは各配列アイテムのtoString()変換メソッドを呼び出し、sort()メソッドの比較も文字列です.
このような比較は正しくないため,sort()法がパラメータとして比較関数を受け入れる必要がある.
降順であればcompareの数値を交換すればよい.
あるいはより速い方法は上述の基礎の上でreverse()の方法を利用します
5:操作方法
*concat()メソッド、接続
*slice()メソッドで、現在の配列の1つ以上のアイテムに基づいて新しい配列を作成します.
slice()メソッドのパラメータに負数がある場合は、配列の長さに配列を加えて対応する位置を決定します.たとえば、5つの配列を含む配列でslice(-1,-2)を呼び出すと、slice(4,3)を呼び出す結果と同じです.終了位置が開始位置より小さい場合は、空の配列を返します.
*splice()メソッド
(1)削除:任意の数のアイテムを削除できます.2つのパラメータを指定するだけです.最初のアイテムを削除する場所と削除するアイテムの数
たとえば、splice(0,2)は配列の最初の2つを削除します.
(2)挿入:指定した場所に任意の数の項目を挿入できます.3つのパラメータ:開始位置、0(削除する項目数)、および挿入する項目のみを指定できます.複数の項目を挿入する場合は、4番目の5番目の任意の複数の項目を入力できます.たとえば、splice(2,0,red,green)は、現在の位置2から文字列「red」「green」を挿入します.
(3)置換:任意の項目を指定した場所に挿入し、同時に任意の数の項目を削除することができ、3つのパラメータ:開始位置、削除する項目数、挿入する任意の数の項目を指定するだけでよい.挿入した項目数は削除した項目数に等しくなく、例えばsplice(2,1,red,green))は、現在の配列位置2の項目を削除し、位置2から文字列「red」、「green」を挿入します.
6:位置方法
indexOf()メソッド配列の先頭から後ろへ検索
LastIndexOf()メソッド配列の末尾から検索
どちらのメソッドも、検索するアイテムと開始位置のインデックスの2つのパラメータを受信します.
7:反復メソッド
*every():配列内の各項目に対して所定の関数を実行し、その関数の各項目がtrueを返すとtrueを返します.
*filter():配列内の各項目に対して所定の関数を実行し、trueの項目からなる配列を返す
*forEach():配列の各項目に対して所定の関数を実行します.このメソッドは値を返しません.
*map():配列内の各項目に対して所定の関数を実行し、各関数呼び出しの結果からなる配列を返します.
*some():配列内の各項目に対して所定の関数を実行し、その関数がいずれかの項目に対してtrueを返すとtrueを返します.
8:縮小方法
reduce()とreduceRight()
reduce()メソッドは,配列の第1項から最後まで1つずつ巡回する.
reduceRight()メソッドは、配列の最後の項目から最初の項目に進むことです.
この方法の目的は,ある値が配列であるか否かを決定することである.
if(Array.isArray(value)){
}
2:スタックメソッド
push()とpop()メソッド
//
var colors=["red","blue"];
colors.push("brown");
colors[3]="black";
alert(colors.length); //4
var item=colors.pop();
alert(item); //black
3:キューメソッド
Push()とshift()メソッド
//
var colors=new Array();
var count=colors.push("red","green");
alert(count);
count=colors.push("black");
alert(count);
var item=colors.shift();
alert(item); //red
alert(colors.length);
unshift()メソッド
unshift()メソッドとshift()メソッドは、配列の先端に任意のアイテムを追加し、新しい配列の長さを返すために使用されます.したがって、unshift()メソッドとpop()メソッドを併用すると、配列の先端にアイテムを追加し、配列の末端にアイテムを除去する逆方向からキューをシミュレートできます.
var colors=new Array();
var count=colors.unshift("red","green");
alert(count);
count=colors.unshift("black");
alert(count);
var item=colors.pop();
alert(item); //green
alert(colors.length);
4:並べ替え方法
配列に2つの直接ソートメソッドreverse()とsort()が存在する
reverse()メソッドは配列項目の順序を反転します
var values=[1,2,3,4,5];
values.reverse();
alert(values); //5,4,3,2,1
デフォルトでは、sortメソッドは配列アイテムを昇順に並べ、sort()メソッドは各配列アイテムのtoString()変換メソッドを呼び出し、sort()メソッドの比較も文字列です.
var values=[0,25,5,33,15];
values.sort();
alert(values); //0,15,25,33,5
このような比較は正しくないため,sort()法がパラメータとして比較関数を受け入れる必要がある.
function compare(a,b){
if (a>b) {
return 1;
} else if (a<b) {
return -1;
} else {
return 0;
}
}
var values = [0, 25, 5, 33, 15];
values.sort(compare);
alert(values); //0,5,15,25,33
降順であればcompareの数値を交換すればよい.
あるいはより速い方法は上述の基礎の上でreverse()の方法を利用します
5:操作方法
*concat()メソッド、接続
var colors=["red","green","blue"];
var colors2=colors.concat("yellow",["black","blown"]);
alert(colors); //red,green,blue
alert(colors2); //red,green,blue,yellow,black,brown
*slice()メソッドで、現在の配列の1つ以上のアイテムに基づいて新しい配列を作成します.
var colors=["red","green","blue","yellow","purple"];
var colors2=colors.slice(1); //green,blue,yellow,purple
var colors3=colors.slice(1,4); //green,blue,yellow
alert(colors2);
alert(colors3);
slice()メソッドのパラメータに負数がある場合は、配列の長さに配列を加えて対応する位置を決定します.たとえば、5つの配列を含む配列でslice(-1,-2)を呼び出すと、slice(4,3)を呼び出す結果と同じです.終了位置が開始位置より小さい場合は、空の配列を返します.
*splice()メソッド
(1)削除:任意の数のアイテムを削除できます.2つのパラメータを指定するだけです.最初のアイテムを削除する場所と削除するアイテムの数
たとえば、splice(0,2)は配列の最初の2つを削除します.
var colors=["red","green","blue"];
var removed=colors.splice(0,1);
alert(colors); //green,blue
alert(removed); //red
(2)挿入:指定した場所に任意の数の項目を挿入できます.3つのパラメータ:開始位置、0(削除する項目数)、および挿入する項目のみを指定できます.複数の項目を挿入する場合は、4番目の5番目の任意の複数の項目を入力できます.たとえば、splice(2,0,red,green)は、現在の位置2から文字列「red」「green」を挿入します.
var colors = ["red", "green", "blue"];
var removed = colors.splice(1, 0, "yellow", "orange");
alert(colors); //red,yellow,orange,green,blue
alert(removed); //
(3)置換:任意の項目を指定した場所に挿入し、同時に任意の数の項目を削除することができ、3つのパラメータ:開始位置、削除する項目数、挿入する任意の数の項目を指定するだけでよい.挿入した項目数は削除した項目数に等しくなく、例えばsplice(2,1,red,green))は、現在の配列位置2の項目を削除し、位置2から文字列「red」、「green」を挿入します.
var colors = ["red", "green", "blue"];
var removed=colors.splice(1,1,"yellow","orange");
alert(colors); //red,yellow,orange,blue
alert(removed); //green2
6:位置方法
indexOf()メソッド配列の先頭から後ろへ検索
LastIndexOf()メソッド配列の末尾から検索
どちらのメソッドも、検索するアイテムと開始位置のインデックスの2つのパラメータを受信します.
var numbers=[1,2,3,4,5,4,3,2,1];
alert(numbers.indexOf(4)); //3
alert(numbers.lastIndexOf(4)); //5
alert(numbers.indexOf(4,4)); //5
alert(numbers.lastIndexOf(4,4)); //3
var person={name:"yin"};
var people=[{name:"yin"}];
var morePeople=[person];
alert(people.indexOf(person)); //-1
alert(morePeople.indexOf(person)); //0
7:反復メソッド
*every():配列内の各項目に対して所定の関数を実行し、その関数の各項目がtrueを返すとtrueを返します.
var numbers=[1,2,3,4,5,4,3,2,1];
var everyResult=numbers.every(function(item,index,array){
return (item>2);
})
alert(everyResult); //false
*filter():配列内の各項目に対して所定の関数を実行し、trueの項目からなる配列を返す
var numbers=[1,2,3,4,5,4,3,2,1];
var filterResult=numbers.filter(function(item,index,array){
return (item>2);
})
alert(filterResult); //[3,4,5,4,3]
*forEach():配列の各項目に対して所定の関数を実行します.このメソッドは値を返しません.
var numbers=[1,2,3,4,5,4,3,2,1];
var forEachResult=numbers.forEach(function(item,index,array){
//
})
*map():配列内の各項目に対して所定の関数を実行し、各関数呼び出しの結果からなる配列を返します.
var numbers=[1,2,3,4,5,4,3,2,1];
var mapResult=numbers.map(function(item,index,array){
return item*2;
})
alert(mapResult); //[2,4,6,8,10,8,6,4,2]
*some():配列内の各項目に対して所定の関数を実行し、その関数がいずれかの項目に対してtrueを返すとtrueを返します.
var numbers=[1,2,3,4,5,4,3,2,1];
var someResult=numbers.some(function(item,index,array){
return (item>2);
})
alert(someResult); //true
8:縮小方法
reduce()とreduceRight()
reduce()メソッドは,配列の第1項から最後まで1つずつ巡回する.
reduceRight()メソッドは、配列の最後の項目から最初の項目に進むことです.