javascript - new String() 的行为不像对象那样的数组

标签 javascript

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”。

最佳答案

不能改nice,试试看;

nice[0] = 'f';
nice[0]; // "A"

如果您想使用Array 方法,请先将其转换为真正的Array

var reverseNice = Array.prototype.slice.call(nice).reverse(); // notice slice
reverseNice.join(''); // "HSA", notice `.join` not `.toString`

关于javascript - new String() 的行为不像对象那样的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712635/

相关文章:

javascript - 带有cookie的jquery按钮在刷新后记住菜单设置

javascript - 如何将 yield (generators) 与 selenium webdriver promises 一起使用?

javascript - Chrome Devtools 控制台在某些网站上不工作

javascript - 从底部开始然后向上滚动

javascript - 在 ReactNative 应用程序中使用获取 API 忽略自签名 SSL 证书的错误?

javascript - 使用 Google Apps 脚本将 HTTPPost 发送到 GCM 时出现错误=缺少注册

javascript - Node.js : Make a response on the same page (update the page)

javascript - 在 d3 TreeMap 中显示带对 Angular 线的文本

JavaScript - 当两者都是字符串时返回对象键和值

javascript - 如何使用 ng-class 在值计算为空时删除类