PHP関数でarray_columnといえば、配列の構造を変換するのに便利な関数です。
それをjavascriptで実装しましたので、利用してください。
実装
function array_column($array, $name=null, $key=null){
if(arguments.length < 1 ) throw new Error('指定する引数の数が間違っています。');
if(!Array.isArray($array)) throw new Error('引数には、配列を指定してください。');
var $return_data = [];
$array.forEach($value => {
if($key == null){
if($name == null){
$return_data.push($value);
}else{
$return_data.push($value[$name]);
}
}else{
if($name == null){
$return_data[$value[$key]] = $value;
}else{
$return_data[$value[$key]] = $value[$name];
}
}
});
return $return_data;
}
利用方法1
子要素の配列をまとめます。
例えば、
$sample = [{id:1, name:'apple', price:'100'},{id:2, name:'banana', price:'150'}];
console.log(array_column($sample,'name'));
を実行すると、
{
0 => {
id => 1,
name => 'apple',
price => '100'
},
1 => {
id => 2,
name => 'banana',
price => '150'
}
}
の内容が以下のように変換されます。
{
0 => 'apple',
1 => 'banana'
}
利用方法2
第3引数を指定すると、各要素のキーとして利用することができます。
例えば、
$sample = [{id:1, name:'apple', price:'100'},{id:2, name:'banana', price:'150'}];
console.log(array_column($sample,'price','name'));
を実行すると、
{
0 => {
id => 1,
name => 'apple',
price => '100'
},
1 => {
id => 2,
name => 'banana',
price => '150'
}
}
の内容が以下のように変換されます。
{
apple => '100',
banana => '150'
}
利用方法3
第二引数にnullを指定した場合、すべての要素を取得することができます。
例えば、
$sample = [{id:1, name:'apple', price:'100'},{id:2, name:'banana', price:'150'}];
console.log(array_column($sample,null,'price'));
を実行すると、
{
0 => {
id => 1,
name => 'apple',
price => '100'
},
1 => {
id => 2,
name => 'banana',
price => '150'
}
}
の内容が以下のように変換されます。
{
apple => {
id => 1,
name => 'apple',
price => '100'
},
banana => {
id => 2,
name => 'banana',
price => '150'
}
}