LoginSignup
0
0

More than 1 year has passed since last update.

PHP脳が故にJavaScriptでarray_pad的関数がなくて泣いてる君へ

Last updated at Posted at 2021-07-26

はじめに

こんにちは。SBI証券での投信積立にクレカが使用できるようになったので、対象の三井住友カードを申し込みました。
クレカで積立できるとポイントたまるのでお得です!皆様もぜひ!

さて、今回は、JavaScriptでPHPのarray_padをしたいときがあり、生み出したコードを共有します。
コピペで使えるので良ければ使ってくださいませ:pray:

PHPのarray_pad関数とは

配列が指定長に満たない場合、指定長まで指定の値で埋めることができる関数です。

リファレンスこちら↓

$ php --rf array_pad

Function [ <internal:standard> function array_pad ] {

  - Parameters [3] {
    Parameter #0 [ <required> array $array ]
    Parameter #1 [ <required> int $length ]
    Parameter #2 [ <required> mixed $value ]
  }
  - Return [ array ]
}

使用例

<?php
$array = [12, 10, 9];
$length = 5;
$val = 'hello';

$result = array_pad($array, $length, $val);
// [12, 10, 9, 'hello', 'hello'] 
?>

JavaScriptでarray_padしたい!

const array = [12, 10, 9]
const length = 5
const val = 'hello'

const result = [
    ...array,
    ...[...Array(length - array.length)].map(e => val)
]
// [12, 10, 9, 'hello', 'hello']

2021/07/26(月) 追記

コメントをいただきまして、こちらの方がスマートで素敵なコードになります:pray:
ぜひこちらを使用してくださいませ!

concat使うならスプレッド構文は不要でしたね。
const result = array.concat(Array(length - array.length).fill(val));

const array = [12, 10, 9]
const length = 5
const val = 'hello'

const result = array.concat(Array(length - array.length).fill(val));

おわりに

いろいろやり方あると思いますが、個人的に一番シンプルにできた気がしてます :smile:

それでは!

0
0
5

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
0
0