私には意味をなさない問題があります。あなたの誰かが助けることができるかどうか疑問に思っていました。JSON.stringifyとObject.keysは同じオブジェクトで異なる結果を生成します
私はRESTデータにアクセスするために使用するデータソースオブジェクトを持っています。すべての複雑な非同期のものはうまく動作しますが、データソースの設定にオプションを渡す非常に簡単な作業である必要があります。
瞬間に、私はこの機能を持っている:
object.addSourceOption = function(model, optKey, optVal){
if(!_.has(config.sources, model)){ return this; }
else{
var options = config.sources[model]["options"];
options[optKey] = optVal;
console.log(options[optKey]);
//options = JSON.parse(JSON.stringify());
console.log("Source Option: " + optKey + ": " + optVal
+" added for model: " + model);
var debugString = JSON.stringify(options);
console.log(debugString);
console.log(Object.keys(options));
}
return this;
};
この関数が呼び出されていると、それは私の知る限り見ることができるように良好な値と呼ばれています。ここではいくつかのデバッグ出力の例を示します(この場合は、キーの値が「post_get」であり、値が印刷された関数、です):
function (element){
}
restData2.js:189 Source Option: post_get: function (element){
} added for model: Contacts
restData2.js:191 {}
restData2.js:192 ["post_get"]
私は理由を理解していないJSON.stringifyとオブジェクト。キーの結果が異なります。私は、私が使っているコードをデバッグするために信頼するもの、あるいは私が書いたコードについて2つの機能に不一致を起こす可能性があるものを理解していません。
ありがとうございました。これは非常に有益なコメントでした。関数がJSONから除外されることにはかなりの意味があります。もし私がそれについて考えるなら、それは明らかであり、ほとんどの場合、私たちが望むものです。しかし、私はそんなことは考えていませんでした。ありがとう。 – aphenine
@aphenine - 喜んで助けてください:)。私はあなたがスタックオーバーフローの新しさを参照してください - これは正解であることに同意する場合は、それをマークする必要があります:)。それは将来の訪問者を助けるでしょう。 –