LoginSignup
10
12

More than 5 years have passed since last update.

javascript ~ 便利なメソッドとか ~

Last updated at Posted at 2018-08-26

「めそっど」って何デスカ? って人へ

すなわちメソッドとは

JavaScriptにおける「メソッド」とは、普通の「関数」と同じなのですがオブジェクトの中に定義されるもの。

らしい。
細かいことはさておき、
その中でも過去に一度でも使った強者メソッドをまとめた。

とりあえず絶対値が欲しい時 .Math.abs( )

Math.abs('-1');     // 1
Math.abs(-2);       // 2
Math.abs(null);     // 0
Math.abs('');       // 0
Math.abs([]);       // 0
Math.abs([2]);      // 2
Math.abs([1,2]);    // NaN
Math.abs({});       // NaN
Math.abs('string'); // NaN
Math.abs();         // NaN

配列の値を全て足したい時 .reduce( )

var array = [10,40,50,30,63];

//足し算
変数 = array.reduce((a,x) => a+=x,0);

console.log(変数) => 193

配列の値から最小値を求める時 .reduce( )

let array = [1,2,3,4,5,6,7,8];

//条件演算子の場合
console.log(array.reduce((a,b)=>a<b?a:b));

//Math.minの場合
console.log(array.reduce((a,b)=>Math.min(a,b)));

配列の値から最大値を求める場合

let array = [1,2,3,4,5,6,7,8];

//条件演算子の場合
console.log(array.reduce((a,b)=>a>b?a:b));

//Math.minの場合
console.log(array.reduce((a,b)=>Math.max(a,b)));

reduceを使用して2次元配列を1次元配列へ変換

const arr = [
  [1, 2, 3, 4],
  [5, 6, 7, 8],
  [9,10,11,12],
];

const list = arr.reduce((pre,current) => {pre.push(...current);return pre},[]);

console.log(list) => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

配列の値を全て数値へ変換したい時 .map( )

var array = ["10","40","50"];

変数 = arr.map(a => +a);

console.log(変数) => [10, 40, 50]

2次元配列の値を数値化したい時は、

var arr =[ [ '1', '3' ], [ '2', '1' ], [ '2', '3' ] ]

var arr1 = arr.map(function(val){
  return val.map(function(a){return +a;})
})

console.log(arr1) => [ [ 1, 3 ], [ 2, 1 ], [ 2, 3 ] ]

ちなみにこんな小技も・・・

var hensu = "1"
console.log(+hensu) => 1 // + を付けても単純な文字列なら数値にできる。

偶数のみ取得したい時 .filter( )

var arr = [1,5,7,3,4,6,13,10];

変数 = arr.filter(n => n % 2 == 0);

console.log(変数) => [ 4, 6, 10 ]

配列の値を降順にしたい時 .sort( )

var arr = [80, 40, 120];

arr.sort(function(a, b){
    return a - b;
});

=> [40, 80, 120]

ちなみに昇順の場合は・・・。

var arr = [80, 40, 120];

arr.sort(function(a, b){
    return b - a;
});

=> [40, 80, 120]

配列を結合したい時は .concat( )

var arr1 = ['a', 'b'];
var arr2 = ['c', 'd'];

var arr = arr1.concat(arr2);

console.log(array); => ['a', 'b', 'c', 'd']

先頭に追加 .unshift( )

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

arr.unshift('a');

console.log(arr); => ['a', 'b', 'c']

ケツに追加 .push( )

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

arr.push('c');

console.log(arr); => ['a', 'b', 'c']

配列の後ろからN個の要素を取り出す .slice( );

var arr = [80, 40, 120];

arr = arr.slice(-1) //後ろから1つの場合

console.log(arr); => [120]

ちなみ二次元配列とかにも使えるよ。

var arr = [ '11 14 16 10', 
            '12 15 17 10', 
            '13 11 14 11', 
            '12 10 13 8', 
            '11 13 14 10' ]

arr = arr.slice(1)

console.log(arr); =>  ["12 15 17 10",
                       "13 11 14 11", 
                        "12 10 13 8", 
                        "11 13 14 10"]

っていうか二次元配列の作り方はこうだよ。

var nijigenHairetsu = [] //こいつの中に作るよ。

var arr = [ '11 14 16 10', 
            '12 15 17 10', 
            '13 11 14 11', 
            '12 10 13 8', 
            '11 13 14 10' ]

for(let i = 0; i < arr.length;i++){ 
     arr2.push(arr[i].split(' '))
   }

小数点以下の切り捨てとか切り上げとか。

var hensu1 = 500 
var hensu2 = 180

console.log(Math.floor(hensu1 / hensu2)) => 2
console.log(Math.ceil(hensu1 / hensu2)) => 3

配列の中の値から最大値,最小値を出力したい

var a = [3, 1, 4, 1, 5, 9, 2, 6];
Math.max.apply(null, a);  => 9
Math.min.apply(null, a);  => → 1

配列の中から任意の値を検索

var arr = ['田中', '岸本', '藤井'];

var result = arr.indexOf( '岸本' );

console.log( result ); => 1

配列の中の値から文字列中の空白文字(スペースやタブなど)を一括削除

var arr = ['田 中', '岸 本', '藤 井'];
arr = arr.map(a => a.replace(/\s+/g, "")) => ['田中', '岸本', '藤井']

任意の値の数を保持した配列を生成したい時

var arr = [...Array(3).fill(0)];
console.log(arr) => [0, 0, 0]

TO BO CONTINUE...

10
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12