重构来自REST-API的对象

时间:2016-04-08 作者:buckdanny

我正在使用wp rest api,我要使用这个json结构:

[
  {
    "id": 11,
    "title": {
      "rendered": "Test-Font"
    },
    "acf": {
      "schrift": [
        {
          "zeichen": "A",
          "anzahl": "23"
        },
        {
          "zeichen": "B",
          "anzahl": "46"
        },
        {
          "zeichen": "C",
          "anzahl": "42"
        },
        {
          "zeichen": "D",
          "anzahl": "49"
        },
        {
          "zeichen": "E",
          "anzahl": "31"
        },

…


 {
    "id": 12,
    "title": {
      "rendered": "Test-Font2"
    },
    "acf": {
      "schrift": [
        {
          "zeichen": "A",
          "anzahl": "20"
        },
        {
          "zeichen": "B",
          "anzahl": "12"
        },

…
我想这样加载:

jQuery(function ($) {
$.ajax({
    url: \'http://localhost/wordpress-dev/mi/wp-json/wp/v2/schriften/\',
    type: "GET",
    dataType: "json",
    success: function (data) {
        data.forEach(function (element) {

    }
});
});
我想实现这种结构,就像关联数组一样:

[11]
  [A]:23
  [B]:46
  [C]:42
…
 [12]
  [A]:20
如何做到这一点?有人能把我推向正确的方向吗?非常感谢!

2 个回复
SO网友:David Kryzaniak

看看这个:https://jsfiddle.net/9j96jbxn/1/

替换您的data.forEach(function (element) {...} 使用嵌套的for循环。这会让你接近你想要的东西。

SO网友:joemaller

TH我s 我s MoRE A.BoUT JA.五、A.sCR我PT THA.N THE WoRDPREss REsT A.P我, BUT 我T\'s K我ND oF FUN To Do A.ND A. GooD E十、A.MPLE oF A.RRA.Y.REDUCE:

&#十、A.;&#十、A.;
五、A.R DA.TA.2. = DA.TA..REDUCE(FUNCT我oN(L我sT, 我TEM) {&#十、A.;  五、A.R sCHR我FT = 我TEM.A.CF.sCHR我FT.REDUCE(FUNCT我oN(oBJ, N) {&#十、A.;    oBJ[N.ZE我CHEN] = N.A.NZA.HL;&#十、A.;    RETURN oBJ;&#十、A.;  }, NEW OBJECT());&#十、A.;  L我sT[我TEM.我D] = sCHR我FT;&#十、A.;  RETURN L我sT;&#十、A.;}, NEW OBJECT());&#十、A.;&#十、A.;CoNsoLE.LoG(JsON.sTR我NG我FY(DA.TA.2., NULL, 2.))&#十、A.;
&#十、A.;&#十、A.;

THA.T A.ND A. LEss 五、ERBosE Es6. E十、A.MPLE A.RE 我N TH我s F我DDLE: HTTPs://JsF我DDLE.NET/JoEMA.LLER/DGA.3.9BsE/4./

&#十、A.;&#十、A.;

THE REsULT LooKs L我KE TH我s (A.s JsON):

&#十、A.;&#十、A.;
{&#十、A.;  “”1.1.“”: {&#十、A.;    “”A.“”: “”2.3.“”,&#十、A.;    “”B“”: “”4.6.“”,&#十、A.;    “”C“”: “”4.2.“”,&#十、A.;    “”D“”: “”4.9“”,&#十、A.;    “”E“”: “”3.1.“”&#十、A.;  },&#十、A.;  “”1.2.“”: {&#十、A.;    “”A.“”: “”2.0“”,&#十、A.;    “”B“”: “”1.2.“”&#十、A.;  }&#十、A.;}&#十、A.;
&#十、A.;&#十、A.;

NoTE JA.五、A.sCR我PT MA.KEs 我T soMEWHA.T EA.s我ER To LooP A.RRA.Ys THA.N oBJECT KEYs. FLA.TTEN我NG 我NTo A.N A.RRA.Y oF oBJECTs W我TH A.N 我D KEY M我GHT REsULT 我N s我MPLER LooPs LA.TER oN:

&#十、A.;&#十、A.;
[&#十、A.;  {&#十、A.;    _我D: 1.1.,&#十、A.;    A.: 2.3.,&#十、A.;    B: 4.6.&#十、A.;  }, {&#十、A.;    _我D: 1.2.&#十、A.;    A.: 2.0&#十、A.;  }&#十、A.;]&#十、A.;
&#十、A.;