对象数组上的 Array.reduce() ——返回单个字母的字符串

Lei*_*ana 2 javascript arrays string object

我正在努力理解 JavaScript 中的 Array.reduce() 。我有一个对象数组,我试图对其应用 .reduce() ,但我得到了一个单字母字符串数组。

目标:

["Stuff", "necklace", "ring", "bracelet"]
Run Code Online (Sandbox Code Playgroud)

当前对象数组

const productArray =
[
    {
        id: 1,
        productTitle: "Necklace"
    },
    {
        id: 2,
        productTitle: "Ring"
    },
    {
        id: 3,
        productTitle: "Bracelet"
    }
]
Run Code Online (Sandbox Code Playgroud)

函数调用

const newStuff = productArray.reduce(function(a, currentValue) {
    return [...a, ...currentValue.productTitle];
}, ["Stuff"])
Run Code Online (Sandbox Code Playgroud)

实际结果: 奇怪的数组

我需要做什么来指定我不希望将“productTitle”分解为单字母字符串?我一直在寻找有关对象数组上的 .reduce() 的资源,但没有发现任何非常有帮助的内容。有什么指点吗?

Ori*_*ori 5

要在使用展开创建新数组时连接数组和值,请将前一个数组展开到新数组,然后添加新项目而不展开它。

const productArray = [{"id":1,"productTitle":"Necklace"},{"id":2,"productTitle":"Ring"},{"id":3,"productTitle":"Bracelet"}];

const newStuff = productArray.reduce((a, currentValue) => 
  [...a, currentValue.productTitle], []);

console.log(newStuff);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,最好使用Array.map()

const productArray = [{"id":1,"productTitle":"Necklace"},{"id":2,"productTitle":"Ring"},{"id":3,"productTitle":"Bracelet"}];

const newStuff = productArray.map((currentValue) => currentValue.productTitle);

console.log(newStuff);
Run Code Online (Sandbox Code Playgroud)