gpt4 book ai didi

javascript - 使用键划分数组数组中的对象

转载 作者:行者123 更新时间:2023-11-29 21:08:46 28 4
gpt4 key购买 nike

考虑以下对象:

{ a1: "Foo", b1: "Boo" , c1: "Coo", a2: "Doo" , b2: "Goo", c2: "Soo", ....... c50: "Zoo" }

我想把它分成一个数组,看起来像这样:

[["Foo","Boo","Coo"], ["Doo","Goo","Soo"]......[ .., ..,"Zoo"]]

这样做的最佳做法是什么?

最佳答案

您可以先在 Object.keys() 上使用 reduce() 返回一个对象,然后使用 map() 对象的键返回值,这将是值的数组。

var obj = { a1: "Foo", b1: "Boo" , c1: "Coo", a2: "Doo" , b2:"Goo", c2:"Soo", c50:"Zoo"}

var o = Object.keys(obj).reduce(function(r, e) {
var newKey = e.match(/\d+/)[0]
r[newKey] = (r[newKey] || []).concat(obj[e])
return r
}, {})

var result = Object.keys(o).map(e => o[e])

console.log(result)

对于 ES-7,您可以使用 Object.values(),但浏览器支持仍然很差,但解决方案如下所示。

var obj = { a1: "Foo", b1: "Boo" , c1: "Coo", a2: "Doo" , b2:"Goo", c2:"Soo", c50:"Zoo"}

var result = Object.values(Object.keys(obj).reduce(function(r, e) {
var newKey = e.match(/\d+/)[0]
return r[newKey] = (r[newKey] || []).concat(obj[e]), r
}, {}))


console.log(result)

关于javascript - 使用键划分数组数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42721555/

28 4 0
文章推荐: javascript - 在没有子节点的 html 元素上,事件捕获阶段未按预期工作
文章推荐: android - SpeechRecognizer 未启动
文章推荐: android - PagerSlidingTabStrip 不工作,但我的代码对我来说似乎没问题
文章推荐: javascript - 从 <iframe> 或 中获取变量的值