Javascript 有人能解释一下.map()方法的工作原理吗

Javascript 有人能解释一下.map()方法的工作原理吗,javascript,Javascript,在此解释.map()方法中箭头函数的用法 let mFunc= function(fname, data) { for (i in data.shop) { //iterating through the JSON data if (data.shop[i].name == fname) { let dataSv = data.shop[i]; // We found a match, displ

在此解释.map()方法中箭头函数的用法

let mFunc= function(fname, data) {
    for (i in data.shop) {              //iterating through the JSON data
        if (data.shop[i].name == fname) {
            let dataSv = data.shop[i];

            // We found a match, display details
            for (y in dataSv){   
                if (typeof dataSv[y][0] === 'object') {
                    dataSv[y] = dataSv[y].map(z => z.name) // explain me this part
                }

                alert(i + " : " + dataSv[y])

            }
        }
    }
}
}

它只返回数组中每个元素的“name”属性,而不是原始对象

基本上,
=>
右侧的代码计算结果将成为.map()迭代的每个数组元素的返回值

有关更多信息和可运行的演示,请参见。您可以使用该演示玩它,它将只返回数组中每个元素的“name”属性,而不是原始对象

.map(z => z.name)
基本上,
=>
右侧的代码计算结果将成为.map()迭代的每个数组元素的返回值

有关更多信息和可运行的演示,请参见

.map(z => z.name)
是以下的简写:

.map(z => {
  return z.name;
})
所以当你只想在函数中写一行,这是一个返回语句时,你可以用这个简写

是以下的简写:

.map(z => {
  return z.name;
})

因此,当您只打算在函数中写入一行,即返回语句时,可以使用这种简写方式。

这只是将对象数组转换为字符串数组,其中包含每个元素的
名称。

如果在数组函数中的
=>
之后编写表达式,它将返回该表达式

箭头函数可以有一个简明的正文或通常的块正文

在简明体中,只指定一个表达式,该表达式将成为隐式返回值。在块体中,必须使用显式的
return
语句

相当于

dataSv[y] = dataSv[y].map(z => {
    return z.name;
})

这只是将对象数组转换为字符串数组,字符串数组将包含每个元素的
名称。

如果在数组函数中的
=>
之后编写表达式,它将返回该表达式

箭头函数可以有一个简明的正文或通常的块正文

在简明体中,只指定一个表达式,该表达式将成为隐式返回值。在块体中,必须使用显式的
return
语句

相当于

dataSv[y] = dataSv[y].map(z => {
    return z.name;
})

检查这个例子。这可能会让事情变得更清楚

dataSv=[
[
{name:'one',id:1},
{name:'two',id:2},
{name:'three',id:3}
],
[
{name:'seven',id:11},
{name:'seven',id:12},
{姓名:“十三”,id:13}
],
[
{姓名:“二十一”,id:21},
{姓名:'22',id:22},
{姓名:'23',id:23}
]
]
dataSv[0]=dataSv[0]。映射(z=>z.name)
dataSv[1]=dataSv[1]。映射(z=>z.name)
dataSv[2]=dataSv[2]。映射(z=>z.name)

console.info(dataSv)
检查此示例。这可能会让事情变得更清楚

dataSv=[
[
{name:'one',id:1},
{name:'two',id:2},
{name:'three',id:3}
],
[
{name:'seven',id:11},
{name:'seven',id:12},
{姓名:“十三”,id:13}
],
[
{姓名:“二十一”,id:21},
{姓名:'22',id:22},
{姓名:'23',id:23}
]
]
dataSv[0]=dataSv[0]。映射(z=>z.name)
dataSv[1]=dataSv[1]。映射(z=>z.name)
dataSv[2]=dataSv[2]。映射(z=>z.name)

console.info(dataSv)
map
返回一个数组(据我猜测)
name
字符串。它是在
dataSv[y]
上循环,并且对于迭代中的每个对象,隐式返回它的
name
属性。您想知道的内容可能重复?A是如何工作的?或者是它本身?文档还不够清晰吗?
map
返回一个数组(据我猜测)
name
字符串。它是在
dataSv[y]
上循环,并且对于迭代中的每个对象,隐式返回它的
name
属性。您想知道的内容可能重复?A是如何工作的?或者是它本身?文档是否足够清晰?否则称为“隐式返回”+1另一种说法是“隐含回报”+1.