[js]多重連想配列の特定列を検索し目的のデータ(配列:行)を取り出す

Web App

PHP を使い MySQL から取り出した配列はだいたい次のようになるよね。

const arrs = [
 { id:1, pref:'北海道', name:'クー', age:3 },
 { id:2, pref:'愛媛', name:'ジャック', age:7 },
 { id:3, pref:'熊本', name:'ジョン', age:15 }
]

id がユニークとして、この配列から PHP 内で検索をかけるとき(あくまで MySQL で準備するのは該当する1レコードでなく多重配列とする)こんなやり方で取り出してました。

id が 2 のレコード(配列)だとこんな感じ…

const result = $.grep(arrs, function(obj, idx){
  return (obj.id == 2);
  }
);
const arr = result[0];

返値となる result は以下

result = [ {"id":2,"pref":"愛媛","name":"ジャック","age":7} ]

目的の形を手に入れるために、result[0] とする必要があった。

result[0] = {"id":2,"pref":"愛媛","name":"ジャック","age":7}

簡単に同じことができると知った。

const arr = arrs.find(arr => arr.id == 2);

すっきりした

コメント