Javascript:如何将包含对象的对象转换和映射到数组中?

问题描述 投票:-3回答:1

在Java语言中,如何映射和转换此对象:

  {
    0: {k1 : v1},
    2: {k2 : v2}
  }

到此数组:

[
    {
        label: k1,
        value: v1
    },
    {
        label: k2,
        value: v2
    }
]

obs .:单线很好,但欢迎所有答案。

我无法获得理想的结果,但是我盲目地遵循以下公式:

const objectMap = (obj, fn) =>
  Object.fromEntries(
    Object.entries(obj).map(
      ([k, v], i) => [i, fn(v, k, i)]
    )
  )
const cfieldsFinal = objectMap(modcf, (k, v) => ({
  label: v,
  value: k
}))

这几乎是我所需要的,除了它仍然是一个对象:

output => {0: {label: k1, value: v1}, 1: {label: k2, value:  v2}}

所以,只有像我这样的完整的菜鸟才会卡在这部分上...

javascript arrays object ecmascript-6 map-function
1个回答
0
投票

const foo = {
  0: {
    k1: "v1"
  },
  2: {
    k2: "v2"
  }
};

/*
[
    {
        label: k1,
        value: v1
    },
    {
        label: k2,
        value: v2
    }
]
*/

const oe = Object.entries;
const bar = oe(foo).map(([k, v]) => {
  const [label, value] = oe(v)[0];
  return {
    label,
    value
  };
});

console.log(bar);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.