未分類

JavaScriptでPHP関数 array_columnを実装する【コピペで簡単】

投稿日:

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'
	}
}

 

 

-未分類

Copyright© エンジニアの階段 , 2020 All Rights Reserved Powered by STINGER.