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

JS get array in string using toString (without changing the actual array)

我正在尝试将 js 数组转换为字符串。该字符串应该是隐藏输入的值,如下所示:

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

在控制器中:

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

问题是,它将数组更改为字符串值,因此当需要在 $scope.productIndications 中进行更改时,它没有这样做。 有没有像 toString() 这样的方法而不改变实际元素?只返回一个字符串结果? 先谢谢了

我不确定你到底在问什么,但 join 可能是你要找的。

假设你的数组是array = [John, Steve, Rob, Mary, Tom],那么你可以做的是:

array.join(',') \John,Steve,Rob,Mary,Tom array.join(' ') \John Steve Rob Mary Tom array.join('And') \JohnAndSteveAndRobAndMaryAndTom

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

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

angular.copy(test, test2);

test2 现在应该是一个完全相同的副本,您可以在不影响测试的情况下对其进行操作。

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

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

这个函数不会修改原来的数组,所以你可以像以前一样继续使用它。如果您需要将 stringify returns 的字符串转回数组,您可以使用 JSON.parse 来实现。