トップページに戻る    オートコンプリート    JavaScriptメモ    JavaScriptによるツール

LINQに対応したJavaScriptの配列の操作


目次

001. Take(3)
002. Skip(3)
003. First()
004. Last()
005. Where(述語)
006. Intersect(列挙)
007. Except(列挙)
008. Contains(要素)
009. Reverse()
010. OrderBy(ソート条件)
011. All(述語)
012. Any(述語)


001 Take(3)

sliceメソッドが使える

var arr = ['AAA','BBB','CCC','DDD','EEE'];
console.log(arr.slice(0,3));
// Array [ "AAA", "BBB", "CCC" ]


002 Skip(3)

sliceメソッドが使える

var arr = ['AAA','BBB','CCC','DDD','EEE'];
console.log(arr.slice(3));
// Array [ "DDD", "EEE" ]


003 First()

var arr = ['AAA','BBB','CCC','DDD','EEE'];

if(arr.length > 0){
    console.log('FirstKey = ' + 0 + ' , FirstVal = ' + arr[0]);
    // FirstKey = 0 , FirstVal = AAA
}


004 Last()

var arr = ['AAA','BBB','CCC','DDD','EEE'];

if(arr.length > 0){
    var UB = arr.length - 1;
    console.log('LastKey = ' + UB + ' , LastVal = ' + arr[UB]);
    // LastKey = 4 , LastVal = EEE
}


005 Where(述語)

filterメソッドが使える

var arr = ['AAA','BBB','CCC','DDD','EEE'];

var OKVal1 = 'BBB';
var OKVal2 = 'DDD';

var filtered_arr = arr.filter(function(value){
                                 return value == OKVal1
                                     || value == OKVal2
                              });
console.log(filtered_arr);
// Array [ "BBB", "DDD" ]


006 Intersect(列挙)

var wk_arr1 = ['AAA' , 'CCC'];
var wk_arr2 = ['BBB' , 'CCC'];

var intersect_arr = [];
wk_arr1.forEach(function(value){
                    if(wk_arr2.indexOf(value) > -1 ){
                        intersect_arr.push(value);
                    }
                });
console.log(intersect_arr);
// Array [ "CCC" ]


007 Except(列挙)

var wk_arr1 = ['AAA' , 'BBB'];
var wk_arr2 = ['BBB' , 'CCC'];

var except_arr = [];
wk_arr1.forEach(function(value){
                    if(wk_arr2.indexOf(value) == -1 ){
                        except_arr.push(value);
                    }
                });
console.log(except_arr);
// Array [ "AAA" ]


008 Contains(要素)

indexOfメソッドが使える

var arr = ['AAA','BBB','CCC']
var ind = arr.indexOf('AAA');
console.log(ind > -1 ? 'AAAが要素に存在します。' : 'AAAは要素に存在しません。');
// AAAが要素に存在します。


009 Reverse()

reverseメソッドが使える。
reverseメソッドは破壊的メソッドなので注意。

var NumArr = [777,888,999];

NumArr.reverse();
console.log(NumArr);
// Array [ 999, 888, 777 ]


010 OrderBy(ソート条件)

sortメソッドが使える。
sortメソッドは破壊的メソッドなので注意。

// ■■■ 数値の配列の場合 ■■■
var NumArr = [9,111,5];
NumArr.sort(function(x,y){
                if(x < y) return -1;
                return 1;
            });
console.log(NumArr);
// Array [ 5, 9, 111 ]

// ■■■ 文字列の配列の場合 ■■■
var StrArr = ['AAA','CCC','BBB','DDD'];
StrArr.sort(function(x,y){
                if(x < y) return -1;
                return 1;
            });
console.log(StrArr);
// Array [ "AAA", "BBB", "CCC", "DDD" ]

// ■■■ Object型の配列の場合 ■■■
var object_arr = [];
object_arr.push( {ID : 1 , NumVal : 111});
object_arr.push( {ID : 2 , NumVal : 999});
object_arr.push( {ID : 3 , NumVal : 555});
object_arr.push( {ID : 4 , NumVal : 555});

// order by NumVal desc,ID asc な並びにソートする

object_arr.sort(function(x,y){
                    if(x.NumVal < y.NumVal) return  1;
                    if(x.NumVal > y.NumVal) return -1;
                    if(x.ID     > y.ID)     return  1;
                    if(x.ID     < y.ID)     return -1;
                    return 0;
                });
console.log(JSON.stringify(object_arr));
/*
  [{"ID":2,"NumVal":999},
   {"ID":3,"NumVal":555},
   {"ID":4,"NumVal":555},
   {"ID":1,"NumVal":111}]
*/


011 All(述語)

everyメソッドが使える

var arr = [1,3,5,7];

var result = arr.every(function(value){
                 return value%2 == 1;
             });
console.log(result); // true


012 Any(述語)

someメソッドが使える

var arr = [1,3,5,7];

var result = arr.some(function(value){
                 return value == 3;
             });
console.log(result); // true