来自新手的简单问题......
我正在尝试创建一个接受数组和空字符串的函数。然后,该函数将对数组执行.join()方法,并将结果设置为空字符串。
该函数似乎加入(使用console.log检查),但它不会将结果设置为外部变量。我在这里缺少什么?
代码
//empty string
var newStr ='';
var myArr = ['it','was', 'the', 'best', 'of', 'times'];
var rejoiner = function (arr, str) {
str = arr.join(' ');
//checking that the function is working
console.log(str);
}
然后,运行rejoiner
函数,传入myArr
和newStr
...
rejoiner(myArr, newStr);
然后检查是否设置了newStr(失败!未设置!)...
newStr;
答案 0 :(得分:1)
它几乎与你写的一样有效。如果从函数返回str,则可以这样设置newstr。
//empty string var newStr ='';
var myArr = ['it','was', 'the', 'best', 'of', 'times'];
var rejoiner = function (arr) {
var str = arr.join(' '); //checking that the function is working
console.log(str);
return str;
};
newStr = rejoiner(myArr);
答案 1 :(得分:0)
功能参数是副本。这就像你写的那样
var arr = myArr, str = newStr;
str = arr.join(' ');
console.log(str);
分配到str
不会更改newStr
。在JavaScript中,f(x)
无法更改x
。
答案 2 :(得分:0)
它对我来说很好!:
//empty string
var newStr ='';
var myArr = ['it','was', 'the', 'best', 'of', 'times'];
var rejoiner = function (arr, str) {
str = arr.join(' ');
//checking that the function is working
console.log(str);
}
rejoiner(myArr, newStr);
检查您的控制台日志!