数组,字符串和.join()

时间:2015-07-25 21:04:57

标签: javascript arrays join

来自新手的简单问题......

我正在尝试创建一个接受数组和空字符串的函数。然后,该函数将对数组执行.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函数,传入myArrnewStr ...

rejoiner(myArr, newStr);

然后检查是否设置了newStr(失败!未设置!)...

newStr;

3 个答案:

答案 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);

检查您的控制台日志!