私は、ネストされたオブジェクトを持つ標準オブジェクトを持っています。lodash一致するキー/ネストされたキーを見つけよう
私は 'Gmt'を含むすべてのキーを見つけようとしており、対応するエポック値を瞬時にフォーマットしています。
var myObject = {
"suffix" : "mr",
"fname" : "jullian",
"lname" : "exor",
"dobGmt" : 145754294700000
"addressLine1" : "flat 8a",
"street" : "hoxley close",
"rentStartedGmt" : 145754294700000,
"deposit" : "50.00",
"occupation" : "math teacher",
"profession" : {
"careerStartedGmt": 1458755224800000,
"careerEndGmt": 1459854224800000,
},
"salary" : 28000,
"votingDetail" : {
"location" : "virgina",
"votedOnGmt": 1874585224800000,
"votedFor" : "world wildlife foundation"
}
}
私はしかし、私は、lodash使用していますprofession.careerStartedGmt
、profession.careerEndGmt
とvotingDetail.votedOnGmt
var myObjectClone = _.clone(myObject);
for (var key in myObjectClone) {
if (key.indexOf("Gmt") !== -1) {
var timeValue = myObjectClone[key];
timeValue = timeValue.format('DD-MM-YY HH:mm:ss');
}
}
を欠場するrentStartedGmt
を見つけます(下記参照)上記のキー、をループに標準JSを使用することができますがありそこに任意の私は 'Gmt'を含むすべてのキーを見つけることができます、エポックを変更し、オブジェクトのクローンを返します。
更新:再帰を使用:
function findGmt(data) {
for (var key in data) {
var v = data[key];
if (key.indexOf("Gmt") !== -1) {
}
if(v && typeof v === "object") {
findGmt(v);
}
}
}
findGmt(myObjectClone);
再帰が必要です。再帰をサポートするlodashメソッドはありません。だからあなた自身の再帰関数を書く必要があります。 – hindmost
@hindmost - ああ、私の助言に感謝します。再帰的な試みで更新しました。 –