review javascript 12:関連配列
2689 ワード
(1)知識点(1.1)作成 (1.2)hash配列使用注意点 (1.3)利点 (1.4)関連配列 を巡る
(2)細分化
(2.1)作成
インデックス配列に存在する問題:a.下付きのみで、要素の意味を明確に表すことができないb.要素を正確に検索できない
hash配列:作成:空の配列を作成し、配列に要素を追加する
var arr = new Array(); arr[key] = value;
tips:*keyは文字列**でなければなりません
(2.2)hash配列使用注意点
a.関連配列のkeyは繰り返すことができない.b.アクセスが存在しない下付き位置であれば、エラーは報告されず、undefinedが返されます.
(2.3)メリット
配列を巡回する必要がなく、データ量に関係なく、迅速かつ正確に検索できます.
(2.4)関連配列の遍歴
for(var key in hashArr){//各keyを繰り返し取り出して変数keyに入れ、keyで取得したのは要素の下付き文字名の現在の要素の値のみ:hashArr[key]}
インデックス配列を巡回することもできますが、開始と終了を制御することはできません.
tips:**インデックス配列を巡回する限り、通常のforループを選択するには関連配列を巡回するだけで、for inループ**しか使用できません.
(3)実践
(2)細分化
(2.1)作成
インデックス配列に存在する問題:a.下付きのみで、要素の意味を明確に表すことができないb.要素を正確に検索できない
hash配列:作成:空の配列を作成し、配列に要素を追加する
var arr = new Array(); arr[key] = value;
tips:*keyは文字列**でなければなりません
(2.2)hash配列使用注意点
a.関連配列のkeyは繰り返すことができない.b.アクセスが存在しない下付き位置であれば、エラーは報告されず、undefinedが返されます.
(2.3)メリット
配列を巡回する必要がなく、データ量に関係なく、迅速かつ正確に検索できます.
(2.4)関連配列の遍歴
for(var key in hashArr){//各keyを繰り返し取り出して変数keyに入れ、keyで取得したのは要素の下付き文字名の現在の要素の値のみ:hashArr[key]}
インデックス配列を巡回することもできますが、開始と終了を制御することはできません.
tips:**インデックス配列を巡回する限り、通常のforループを選択するには関連配列を巡回するだけで、for inループ**しか使用できません.
(3)実践
/**
* (1)
* a. ,
* b.
*
* (2)hash
* : ,
* var arr = []
* var arr = new Array();
* arr[key] = value;
* key
*
* (3)hash
* a. key ,
* b. , ! undefined
*
* (4)
* ! ! !
*/
/**
* :
* 0 'a'
* 1 'b'
*/
var arr = ['a', 'b'];
var arr1 = new Array();
arr1['name'] = 'phf';
arr1['age'] = 28;
arr1['name'] = 'phf2'; // ,
console.log(arr1);
//console.log(arr1[jack]);//Uncaught ReferenceError: jack is not defined
// , , undefined
console.log(arr1['aa']);//undefined
console.log("---------- ----------");
/**
* arr1 key
*/
for (var key in arr1) {
console.log("key:" + key);
console.log("value:" + arr1[key]);
console.log("*****")
}
console.log("---------- ----------");
/**
* :
* N,
* (1) 0 N
* (2)
*
* (1) (2) , hash
* (1) key:evenArray
* (2) key:oddTotalVal
*
*/
init();
function init() {
endNum(5);
endNum(-1);
endNum('a');
}
function endNum(n) {
var evenArray = [];
var oddTotalVal = 0;
// , 0
if ((typeof n == 'number') && n > 0) {
for (var i = 0; i < n; i++) {
if (i % 2 == 0) {
evenArray.push(i);
} else {
oddTotalVal += i;
}
}
console.log(evenArray);
console.log(oddTotalVal);
}else{
console.log("n is invalid")
}
}