私は、複雑な(または私が複雑なものと考える)機能を持っており、Googleスクリプトで作成しようとしているキーボードに対して頭を叩いています。オブジェクトをループし、別のオブジェクトの値を一致させる
私は3つの異なるオブジェクトを管理しています。 1)sourceData 2)INDEXDATA 3)出力データ
sourceData[29] | Array | [{type:"cat", count:"3"}, {type:"dog", count:"5"}...]
indexData[29] | Array | [{type:"cat", id:"301"}, {type:"dog", id:"302"}...]
outputData[29] | Array | [{type:"cat", id:"301", count:"3"}, {type:"dog", id:"302", count:"5"}...]
私は現在、出力データオブジェクト内のデータを作成するforループを使用して、ソースデータを反復処理しています。このループで
for (var i = 0; i < sourceData.length; i++) {
var animals = {};
outputData.push(animals);
animal.type = sourceData[i].type;
animal.id = lib.indexMatch(indexData, sourceData[i].type);
animal.count = sourceData[i].count;
}
私はindexMatchと呼ばれる私のライブラリから別の関数を呼び出します。
function indexMatch(data, lookup) {
var index = data; // object that contains the data to iterate through.
for (var j = 0; j < index.length; j++){ // iterate through all rows in data
if(index[j][0]=lookup){
var value = index[j][1];
}
}
Logger.log(j);
return value;
}
その目的はINDEXDATAをループであり、ループの初期時の出力データシートにデータ、ソースデータと出力で重要なパラメータと一致します。
しかし、animalIdのために取得しているのはすべて定義されていません。
私はこの問題を考え直していました。私はそれから離れて歩いていたと私は確かにどのように簡単な解決策がある実現:私はあなたがsourceData
とindexData
からoutputData
を作りたいということを理解
function search(array, key, compareKey, valueKey){
for (var i=0; i < array.length; i++) {
if (array[i][compareKey] === key) {
return array[i][valueKey];
}
}
}
Googleスクリプトで作業する場合は、常にjavascriptで解決策を探してください。GoogleスクリプトはJavaScript機能をサポートしています。あなたの場合は、[ここ](http://stackoverflow.com/questions/1168807/how-can-i-add-a-key-value-pair-to-a-javascript-object)を開始したいかもしれません –
あなたはどこですか?コードとは何ですか? –