JavaScriptの中でArayの実用的な操作の技巧は分かち合います.

5208 ワード

一、アレについて
Arayの作成は非常に柔軟で、Arayのコンストラクタを使ってもいいし、配列の「字面量」を直接作成することもできます.

var arr = new Array(); //[]
var brr = Array();  //[]     

var arr = Array(3); //[]
arr.length;   //3    3    

var arr = Array(22,33,'qq',{}); //[22, 33, "qq", Object]
var brr = [22,33,'qq',{}];  //  
ArayはJavaScriptの内蔵オブジェクトです.はい、配列ですが、対象です.
typeofを使って判定したらObjectに戻ります.Array.isArray方法は、そのタイプをより正確に判断することができる.

var a = [];
typeof a;   //object
Array.isArray(a); //true
二、常用方法
プッシュ方法push方法は、配列の端に1つ以上の要素を追加し、変更された配列の長さを返します.
注意:①行列ではなく、行列の長さを返します.
            ②この方法は元の配列を変えます!

var arr = Array(22,33,'qq',{});
arr.push('weibo');    //5
arr       //[22, 33, "qq", {}, "weibo"]
二つの配列を結合したい場合は、このように使用する必要があります.

var a = [22,33];
var b = [44,55];

Array.prototype.push.apply(a, b)
//   
a.push.apply(a, b)
//   
a.push(44,55);   //     a = [22,33,44,55];
以下のように書いてはいけません.

a.push(b);
a;      //[22,33,[44,55]]
a.length;     // 3 !!
console.log(a);   //[22, 33, Array[2]]
a.push(b)と直接書きます.bはaに加えられた要素と考えられます.理想的な効果は得られません.
他の2つのオブジェクトの配列が結合される場合は、次のようになります.

var a = [
 {name: 'Stark', value: 'Ironman'},
 {name: 'Cap' , value: 'Oldman'}
];
var b = [
 {name: 'Jerry', email: '[email protected]'},
 {name: 'Lory' , email: '[email protected]'},
 {name: 'susan', email: '[email protected]'}
];
//    
a.push(b);   //3
console.log(a);  //[Object, Object, Array[3]]
//    
a.push.apply(a.b); //5
console.log(a);  //[Object, Object, Object, Object, Object]
ポップ()方法pushとは対照的に、配列の最後の要素を削除し、この削除された要素を返します.

var a = ['qq', 'weibo', 'weixin'];
a.pop();        // 'weixin'
a;         // ['qq', 'weibo']
ジョンメソッド
配列を対応するパラメータで区切り、文字列で返します.空のパラメータでは'、'で区切ります.この方法は元の配列を変えません.

var a = [1, 2, 3, 4];
a.join(' ')  // '1 2 3 4'
a.join(' | ')  // "1 | 2 | 3 | 4"
var b = a.join() // "1,2,3,4"
console.log(a); // [1, 2, 3, 4]
console.log(b); // "1,2,3,4"
concat()方法
複数の配列を結合して、新しい配列を返しますが、元の配列は変わりません.

var a = [22,33];
var b = [44,55];
var c = a.concat(b);
console.log(a);  //[22, 33]
console.log(b);  //[44, 55]
console.log(c);  //[22, 33, 44, 55]

var a = [{name: 'tom', email: '[email protected]'},
   {name: 'peter', email: '[email protected]'}];
var b = [{name: 'Jerry', email: '[email protected]'},
   {name: 'Lory', email: '[email protected]'},
   {name: 'susan', value: '[email protected]'}];
var c = a.concat(b);
c;   // [{name: 'tom', email: '[email protected]'},
   // {name: 'peter', email: '[email protected]'},
   // {name: 'Jerry', email: '[email protected]'},
   // {name: 'Lory', email: '[email protected]'},
   // {name: 'susan', value: '[email protected]'}]
map()メソッドmap方法は、配列の各メンバに関数を順次呼び出し、関数処理された新しい配列を返しますが、元の配列は変更されません.

var numbers = [1, 2, 3];
var num  = numbers.map(function (n) {  // [2, 4, 6]
     return n * 2;
    });
numbers;          //[1,2,3]
map方法で呼び出された関数のパラメータが一つの場合、このパラメータは配列の現在のメンバを表します.パラメータが三つの場合は順次
現在のメンバelem、インデックスindex、元の配列自体arr

var brr = [1, 2, 3].map( function(elem, index, arr) {
 return elem * index;
});
brr; // [0, 2, 6]
map方法はまた、第2のパラメータを受け入れることができ、コールバック関数が実行されるときthisが指すオブジェクトを表す.

var arr = ['a', 'b', 'c'];

var brr = [0, 2].map(function(e){
 return this[e];
}, arr)
brr; // ['a', 'c']
アプリケーションでは、時々ajax技術を使用してパラメータ配列を動的に利用して一つのurl要求に変換する必要がある場合、map方法は非常に便利である.

var b = [
 {name: 'Jerry', email: '[email protected]'},
 {name: 'Lory', email: '[email protected]'},
 {name: 'susan', value: '[email protected]'}];
 
var url = b.
   map(function(n){
    return n.name + "=" + n.email
   })
   .join("&");
   
console.log(url); 
   //[email protected]&[email protected]&[email protected]
そして、urlの前にipアドレスとactionと方法を加えると、ajaxに必要な動的urlのつなぎ合わせができます.例えば、

var endURL = "localhost:8080/XXXX/" + eventAction + "!" + operation + "?"
    + url;
締め括りをつける
以上がこの文章の全部です.皆さんの勉強や仕事に一定の助けを与えたいです.もし疑問があれば、メッセージを残して交流してもいいです.