JavaScript初級者です。
データベースから取り出した値に対して処理をしようとした際、
関数内の連想配列のキー名だけを変更した処理を複数回行いたいという場面がありました。
前提・実現したいこと
下記のコードは例ですが、samplePlaceFuncとsampleFoodFuncはキー名が違うだけなので、
1つの関数にまとめたいと考えました。
JavaScript
1const sampleArray = [ 2{sampleName:"山田",samplePlace:"東京",sampleFood:"そば"}, 3{sampleName:"田中",samplePlace:"大阪",sampleFood:"たこ焼き"} 4] 5 6function samplePlaceFunc(array){ 7 let samplePlaceArray = []; 8 array.forEach(element => { 9 samplePlaceArray.push(element.samplePlace); //samplePlaceを別のキー名に変えた処理をしたい 10 }); 11 return samplePlaceArray; 12} 13console.log(samplePlaceFunc(sampleArray)); // 結果["東京","大阪"] 14 15 16function sampleFoodFunc(array){ 17 let sampleFoodArray = []; 18 array.forEach(element => { 19 sampleFoodArray.push(element.sampleFood); 20 }); 21 return sampleFoodArray; 22} 23console.log(sampleFoodFunc(sampleArray)); // 結果["そば","たこ焼き"] 24
試したこと
キー名だけを引数で変更しようとしましたが、うまくいきませんでした。
JavaScript
1//これは動かない 2function sampleThingFunc(array,keyName){ 3 let sampleThingArray = []; 4 array.forEach(element => { 5 sampleThingArray.push(element.keyName); 6 }); 7 return sampleThingArray; 8} 9console.log(sampleThingFunc(sampleArray,sampleFood)); // error:Uncaught ReferenceError: sampleFood is not defined
キー名を関数の外から変更することはできますでしょうか?
ご教授いただけますと幸いです。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/05 13:28