JS使用toString在字符串中获取数组(不更改实际数组)

时间:2015-08-03 14:47:40

标签: javascript arrays angularjs string controller

我试图将js数组转换为字符串。此字符串应为隐藏输入的值,如下所示:

<input type="hidden" ng-model="myIndicationsString" />

在控制器中:

 $scope.myIndicationsString = $scope.productIndications.toString();

问题是,它将数组更改为字符串值,因此当需要在$ scope.productIndications中进行更改时,它无法执行此操作。 是否有类似toString()的方法而不更改实际元素?只返回字符串结果? 先谢谢

3 个答案:

答案 0 :(得分:1)

尝试使用JSON.stringify生成数组的字符串表示形式,如下所示:

 $scope.myIndicationsString = JSON.stringify($scope.productIndications);

此函数不会修改原始数组,因此您将能够像以前一样继续使用它。如果您需要将stringify返回的字符串转换回数组,则可以使用JSON.parse来执行此操作。

答案 1 :(得分:0)

我不确定你究竟在问什么,但join可能就是你想要的。

假设你的数组是rx(),那么你可以做的是:

array = [John, Steve, Rob, Mary, Tom]

答案 2 :(得分:0)

稍微混淆了你的问题,但是,假设你正在使用angularjs,你可以制作一个范围变量的相同副本,以维持原始变量的状态。

var test = [1, 2, 3],
    test2;

angular.copy(test, test2);

test2现在应该是一个可以操作的相同副本,而不会影响测试。