gpt4 book ai didi

Javascript - 将值从对象提取到数组的单行代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:20:51 26 4
gpt4 key购买 nike

我比较简单:

我有一个 Javascript 对象,其中包含一些值为数组的属性,具有以下结构:

let obj = {emails: ["xxx@yyy.com", "qqq@www.com"], nickname: ["asdf"],...}

我需要获取一个仅包含值的数组,如下所示:

let obj2 = [["xxx@yyy.com"], ["qqq@www.com"], ["asdf"],...]

使用 Object.values(obj),我得到 [["xxx@yyy.com", "qqq@www.com"], ["asdf"],.. .],这不是我想要的,但它是一个很好的起点......

此外,如果可能的话,我正在寻找一种单线方式来完成它。有任何想法吗?谢谢。

最佳答案

使用函数 reduce 的替代方法。

此方法从第一层添加对象和数组。

如您所见,此方法评估对象的类型。

let obj = {emails: ["xxx@yyy.com", "qqq@www.com"], nickname: ["asdf"]}

var result = Object.values(obj).reduce((a, c) => {
if (Array.isArray(c)) return a.concat(Array.from(c, (r) => [r]));
return a.concat([c]);
}, []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

一行方法(不包括检查数组类型):

let obj = {emails: ["xxx@yyy.com", "qqq@www.com"], nickname: ["asdf"]},
result = Object.values(obj).reduce((a, c) => (a.concat(Array.from(c, (r) => [r]))), []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于Javascript - 将值从对象提取到数组的单行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com