Arrays 带forEach的变异数组

Arrays 带forEach的变异数组,arrays,foreach,mutate,Arrays,Foreach,Mutate,我的任务是编写一个forEach方法,为数组中的每个元素变异字符串值 下面是一个例子: candy = ['snickers', 'mars', 'three muskateers'] candy.forEach(function(e){ e.toUpperCase()); }); 我通过控制台日志测试了forEach,似乎得到了我想要的返回值 candy.forEach(function(e){ console.log(e.toUpperCase()); 但是,当我打印数组以确认

我的任务是编写一个forEach方法,为数组中的每个元素变异字符串值

下面是一个例子:

candy = ['snickers', 'mars', 'three muskateers']

candy.forEach(function(e){
  e.toUpperCase());
});
我通过控制台日志测试了forEach,似乎得到了我想要的返回值

candy.forEach(function(e){
  console.log(e.toUpperCase());
但是,当我打印数组以确认原始数组已更改时,我会将原始数组取回

console.log(candy);

这与字符串是基本数据类型有关吗?有人能帮我更好地理解吗?

在您的情况下,原始阵列不会被修改

您需要创建一个单独的数组,并将大写值存储在单独数组中的for each中

您的代码(已修改):


在您的情况下,原始数组不会被修改

您需要创建一个单独的数组,并将大写值存储在单独数组中的for each中

您的代码(已修改):


当您试图打印
candy
数组时,没有收到任何更改,因为
map
forEach
函数都不会影响/修改原始数组

使用forEach的

糖果=['snickers'、'mars'、'three muskater']; log(candy.forEach(v=>v.toUpperCase());
console.log(candy)
当您试图打印
candy
数组时,没有收到任何更改,因为
map
forEach
函数都不会影响/修改原始数组

使用forEach的

糖果=['snickers'、'mars'、'three muskater']; log(candy.forEach(v=>v.toUpperCase());
console.log(candy)
要修改它,必须使用
forEach
的第三个参数或使用
candy
本身。像这样:

方法1-第3个参数
candy=['snickers','mars','three muskater']
candy.forEach(函数(el、i、arr){
arr[i]=el.toUpperCase();
});

console.log(candy)
要修改它,必须使用
forEach
的第三个参数或使用
candy
本身。像这样:

方法1-第3个参数
candy=['snickers','mars','three muskater']
candy.forEach(函数(el、i、arr){
arr[i]=el.toUpperCase();
});

console.log(candy)您需要为每个数组元素分配新值,toUpperCase不会更改原始元素您需要为每个数组元素分配新值,toUpperCase不会更改原始元素
candy = ['snickers', 'mars', 'three muskateers']
var candyModified = Array();
candy.forEach(function(e){
    candyModified.push(e.toUpperCase());
});
console.log(candyModified);