var nice = new String("ASH");
nice; //String {0: "A", 1: "S", 2: "H", length: 3, [[PrimitiveValue]]: "ASH"}
var reverseNice = Array.prototype.reverse.call(nice);
reverseNice.toString(); // "ASH"
而我期待reverseNice
成为" HSA"。
答案 0 :(得分:8)
您无法对nice
进行更改,请尝试;
nice[0] = 'f';
nice[0]; // "A"
如果您想使用 Array 方法,请先将其转换为真正的数组
var reverseNice = Array.prototype.slice.call(nice).reverse(); // notice slice
reverseNice.join(''); // "HSA", notice `.join` not `.toString`
答案 1 :(得分:0)
为什么不这样做?
var nice = "ASH".split("");
nice; //Array {0: "A", 1: "S", 2: "H", length: 3}
var reverseNice = nice.reverse();
reverseNice.join("").toString(); // "HSA"
或只是
var nice = "ASH".split("");
var reverseNice = nice.reverse().join("").toString();
答案 2 :(得分:0)
使用split
和join
将类型从string
转换为array
,就像这样。
var nice = new String("ASH");
// create a string
var result = Array.prototype.reverse.call(nice.split('')).join('');
// string can not use the reverse,
// so we need split it and call the prototype function of Array ,
// and join the result in the end
console.log(result)