トップページに戻る
オートコンプリート
JavaScriptメモ
JavaScriptによるツール
LINQに対応したJavaScriptの配列の操作
目次
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