为什么我不能使用.split()?

时间:2017-09-25 17:59:00

标签: javascript arrays string arguments

我确定我不知道传递了什么样的变量。我的印象是,当我调用函数置换时(' abc'),我将一个字符串传递给函数。但是当我尝试使用.split方法时,它会给我一个错误.split不是一个函数。所以我通过使用Array.prototype.slice.call(str)解决了它,但问题仍然存在.split不是一个选项。我的代码如下:

function permutation(str, n) {
  array = Array.prototype.slice.call(str); // why not array = str.split('');
  n = n || array.length;

  if (n == 1) {
    console.log(array.join(''));
    return array.join('');
  } else {
    for (var i=0; i<n;i++) {
      permutation(array, n-1);
      if (n%2 == 0) {
        swap(array,i,n-1);
      } 
      else {
        swap(array,0,n-1);
      }
    }
  }
}

function swap(array, i, j) {
  temp = array[i];
  array[i] = array[j];
  array[j] = temp;
  return array;
}

permutation('abc');

0 个答案:

没有答案