配列

[JavaScript] 連想配列に forEach を使用する

小ネタです。
forEachは配列用のため、連想配列(ハッシュ)には通常使うことができません。そんなときにはObject.keys()を介すことで利用が可能になります。

const hash = {
  apple: 100,
  banana: 130,
  orange: 98
}
const result = [ ]

Object.keys(hash)
      .forEach(key => { result.push(`${key}: ${hash[key]}` )})

// [ 'apple: 100', 'banana: 130', 'orange: 98' ]
console.log(result)

参考ページ

[JavaScript] 配列の値が条件を満たすか検証する – some(), every()

every()some()は配列内の要素をテストし、条件を満たしていれば最終的にtrue、満たしていなければfalseを返します。

/**
 * 偶数チェック
 */
const list = [1, 2, 3, 4, 5]
const check = value => ((value % 2) === 0)

// テストを行う
const check1 = list.every(check)  // すべて偶数か (AND)
const check2 = list.some(check)   // 一つでも偶数か (OR)

// 結果表示
console.log(check1)  // false
console.log(check2)  // true

every()はすべての要素が条件を満たしているかどうか、some()は一つでも満たしているかの違いになります。要はeveryがANDで、someがORですね。
続きを読む

[JavaScript] 配列の全要素に処理を行い新しい配列を作成する – map()

map()を利用すると、元になった配列の要素を順番に処理していき新しい配列を生み出すことができます。mapは元になった配列を変更しません。

/**
 * 2乗する
 */
const list = [1, 2, 3, 4, 5]
const newlist = list.map( value => value * value)

// [1, 4, 9, 16, 25]
console.log(newlist)

mapはよくforEachと比較されますが、forEachは戻り値を返さない特徴があります。戻り値を利用しない場合はforEachを使った方が一般的に高速に処理が行なえます。

続きを読む

[JavaScript] 配列からひとつの値を生成する – reduce()

reduce()は配列内の値を順番に処理していき、最終的に1つの値を生成することができます。

/**
 * 配列の値をすべて足す
 */
const list = [1, 2, 3, 4, 5]
const sum = list.reduce( (prev, current) => prev + current )

// 15
console.log(sum)

returnした値が、次に処理する際のprevに入っています。returnする値は文字列や数値以外には配列やハッシュでもかまいません。初見だとちょっと理解しにくいかもしれませんねw

続きを読む

[JavaScript] 配列から特定の要素だけを取り出す – filter()

filter()は配列の要素を順番にテストしていきtrueが返された要素だけの新しい配列を返却します。

/**
 * 配列から偶数だけを取り出す
 */
const list = [1, 2, 3, 4, 5]
const newlist = list.filter( value => ((value % 2) === 0) )

// [2, 4]
console.log(newlist)
  • 元になった配列(list)は変更されません。
  • すべてfalseになった場合は空の配列が返ります。
    続きを読む

[Linux] Bashでファイル一覧を順番に処理したい

Bashで特定のファイルを順番に処理したい場合、配列をforでぐるぐる回してやるのがお手軽です。ここでは配列listで定義した3つのファイルを順番に指定ディレクトリへコピーしています。

#!/bin/bash

# 対象のファイル一覧
list=(
  /tmp/foo.txt
  /tmp/bar.txt
  /tmp/hoge.txt
);

# 順番に処理する
for file in ${list[@]}; do
  echo "copy ${file} to /home/foo"
  cp $file /home/foo
done

続きを読む

配列の要素数を調べる – Perl

配列に今どれだけの要素が詰まっているかカウントしたい。これには大きく二つの方法が用意されている。

$#配列名」とする方法と、スカラー値として値を得る方法の二つがある。前者と後者で得られる値が違う点に注意すること。「$#配列名」は配列のインデックス(添え字)に忠実で、「最大数 – 1」の結果が返ってくるのに対し、後者は最大数がそのまま返ってくる。
続きを読む

配列内の数値を合計する – Perl

リスト(配列)内の数値をすべて合算した値を取得したい。 素直に計算する方法と、モジュールを利用する方法がある。List::Utilは5.8以上から標準モジュールとして用意されている(インストールする必要がない)。最近のPerlを使っているならモジュールを利用すれば良いだろう。
続きを読む

配列内の最小値を取得する – Perl

とあるリスト(配列)から最小値を取得するにはどうすれば良いだろうか? いろいろな方法が考えられるが、ここでは三種類ほどサンプルをしめす。各関数の処理をそれぞれ見ていただきたい。
続きを読む

配列内の最大値を取得する – Perl

とあるリスト(配列)から最大値を取得するにはどうすれば良いだろうか? いろいろな方法が考えられるが、ここでは三種類ほどサンプルをしめす。各関数の処理をそれぞれ見ていただきたい。
続きを読む

配列の一部を置換する(splice) – Perl

配列の一部だけを簡単に置換してくれる関数がspliceである。 spliceは非常に柔軟であるがために最初はかなりとっつきにくい。その反面、まとめて配列の操作をしたくなった際には心強い味方になってくれる。引数の数によって動作がかなり変わるのでその点をしっかりと押さえておきたい。
続きを読む

配列から値を取り出す(pop,shift) – Perl

配列の先頭、または末尾から値を取り出すにはpop, shiftを用いれば良い。 先頭から取り出す時は「shift」、末尾から取り出す時は「pop」を用いる。注意する点としては、取り出した後その値は配列から取り除かれる(削除される)。なお配列を指定しないと「@_」が自動的に用いられる。
続きを読む