• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オブジェクトから二次元配列へ指定条件下で変換したい)

オブジェクトから二次元配列へ指定条件下で変換!結果データの取得方法は?

このQ&Aのポイント
  • オブジェクトから二次元配列への変換方法を教えてください。
  • 指定条件下で結果データを取得する方法を教えてください。
  • 元データが配列の場合でも同じ結果を得る方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

基本的な考え方として、元データを走査して結果用の配列(またはオブジェクト)に記録して行けば良いのではないでしょうか? >また、元データが配列だった場合、同じ結果を求めるのはどうすれば良いでしょうか オブジェクトなら  for(var key in array){ ~~ 配列なら  for(var i=0; i<array.length; i++){ ~~ で走査する感じ。 配列であれば forEach() で処理する方がより簡単かと思います。 ご提示のオブジェクトの場合、key("0","1","2"…)は使わないみたいですので、その値(配列)の[0],[1]のデータのみを利用することになりそうですね。 keyの「"0","1","2"…」が保証されているのなら、連番のindex(=key)を用いて配列と同様の処理を行うこともできるでしょう。 重複を確認するには、結果のデータをオブジェクトにしておいて、  {   '東京': [13, 3],   '大阪': [3, 2],   '京都': [3, 1],   ・・・・・  } のようにしておく方が、重複のチェックが簡単だと思います。  ・keyがすでに存在すれば、配列[0]の値に加算、配列[1]の値を+1  ・keyが存在しなければ、配列[0]に値をセット、配列[1]=1 として処理してゆけばよさそう。 結果を配列に直接収める場合は、 重複のチェックは、その時点での結果データをスキャンして同じものがあるかをチェックするという方法が異なるだけで、あとは上記のオブジェクトの場合と同様の処理を行うことでよいのではないでしょうか。

re97
質問者

お礼

回答ありがとうございました。 参考になりましたー