簡體   English   中英

減少Javascript

[英]Reduce in Javascript

所以我想轉換:

來自

{
  emailNotify: {
    EQ: true
  },
  foo: {
    bar: false
  }
}

[
  {'condition': 'EQ', 'attribute': emailNotify, 'value': true},
  {'condition': 'bar', 'attribute': foo, 'value': false}
]

我嘗試了以下代碼:

var fromObj={
   emailNotify: {
        EQ: true
    },
    foo: {
        bar: false
    }
};

console.log(Object.keys(fromObj));
var result = (Object.keys(fromObj)).reduce(function(p,c,i,a){
    var newObj={};
    newObj["condition"]=Object.keys(fromObj[c])[0];
    newObj["attribute"]=c;
    newObj["value"]=fromObj[c][Object.keys(fromObj[c])[0]];
    p.push(newObj);
    return p;
},[]);


console.log("result", result);

這是你這樣做的方式嗎? 我相信我沒有正確使用Redu?

PS:我得到了正確的結果! 只是想知道它是否是一種強勢方式?

使用Array.prototype.map可以更簡單:

 var fromObj={ emailNotify: { EQ: true }, foo: { bar: false } }; var result = Object.keys(fromObj).map(function(key) { var subObj = Object.keys(fromObj[key]); return { condition: subObj[0], attribute: key, value: fromObj[key][subObj[0]] }; }); alert(JSON.stringify( result, null, 4 )); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM