Javascript 试图理解此字符串插值中的“${c}”如何指向数组中的元素

Javascript 试图理解此字符串插值中的“${c}”如何指向数组中的元素,javascript,arrays,reactjs,arrow-functions,string-interpolation,Javascript,Arrays,Reactjs,Arrow Functions,String Interpolation,来自数组的文档。来自 参数 arrayLike要转换为数组的类似数组或可编辑对象 mapFn可选的Map函数,用于调用数组的每个元素 thisArg执行mapFn时用作此参数的可选值 它说第二个参数是一个映射函数,它适用于数组中的每个元素 此字符串中的${c}插值如何指向数组中的元素 事实并非如此c=>`你好${c}`是一个参数,一次获取一个参数(c)。 如果希望支持没有字符串插值的环境,可以编写 c=>“Hello”+c+“!”,它可以膨胀为c=>{return“Hello”+c+“!”;}

来自
数组的文档。来自

参数

arrayLike要转换为数组的类似数组或可编辑对象

mapFn可选的Map函数,用于调用数组的每个元素

thisArg执行mapFn时用作此参数的可选值

它说第二个参数是一个映射函数,它适用于数组中的每个元素

此字符串中的
${c}
插值如何指向数组中的元素

事实并非如此<代码>c=>`你好${c}`
是一个参数,一次获取一个参数(
c
)。
如果希望支持没有字符串插值的环境,可以编写
c=>“Hello”+c+“!”
,它可以膨胀为
c=>{return“Hello”+c+“!”;}
,以强调它是一个非常紧凑但实际的函数。
10年前,如果没有插值和箭头函数,您可能会编写
函数(c){返回“Hello”+c+“!”;}
在那里

因此,正如其他答案/评论所指出的,使用
Array.from(someIterable,someFunction)
只需对
someIterable
的所有元素调用
someFunction
,在数组中收集结果。然后
join()
将数组元素连接到单个字符串中。由于您的“iterable”已经是一个数组,您可以使用
array.map(someFunction)

一些变体还添加了日志记录,其中提供了long
函数(x)

const大陆=[‘非洲’、‘美洲’、‘亚洲’、‘澳大利亚’、‘欧洲’];
const hellos1=数组.from(大陆,函数(x){
控制台日志(“处理元素:+x”);
返回“Hello”+x+“!”;
});
console.log(hellos1.join(“”);
const hellos2=大陆.map(x=>{return“Hello”+x+“!”});
console.log(hellos2.join());//逗号分隔

console.log(`1+2:${1+2},大陆.length:${columents.length}`)
这似乎更多的是关于
Array.from
如何工作的问题。您读过该函数的文档了吗?这与用于逐个迭代每个元素以使用数组的每个元素执行定义任务的[].map()相同。
const continents = ['Africa', 'America', 'Asia', 'Australia', 'Europe'];

const helloContinents = Array.from(continents, c => `Hello ${c}!`);

const message = helloContinents.join(' ');

const element = React.createElement("div", {

  title: "Outer div"

}, React.createElement("h1", null, message));

ReactDOM.render(element, document.getElementById('contents'));