Javascript 在AngularJS中将数组转换为字符串

Javascript 在AngularJS中将数组转换为字符串,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我正在尝试将字符串数组转换为单个字符串。我很快就得到了我所需要的基本条件: 在我正在开发的应用程序中,我需要使用两个不同的控制器,我为控制器创建了一个工厂来共享数据,所以我就这样设置了一个示例 下面是我尝试使用的函数,用于循环数组并添加到范围变量,CherryPick是数组: cherryCtrl.CherryPick = CherryPick.list; cherryCtrl.string = cherryCtrl.output; cherryCtrl.runString = funct

我正在尝试将字符串数组转换为单个字符串。我很快就得到了我所需要的基本条件:

在我正在开发的应用程序中,我需要使用两个不同的控制器,我为控制器创建了一个工厂来共享数据,所以我就这样设置了一个示例

下面是我尝试使用的函数,用于循环数组并添加到范围变量,CherryPick是数组:

cherryCtrl.CherryPick = CherryPick.list;
cherryCtrl.string = cherryCtrl.output;


cherryCtrl.runString = function createString(array) {

    angular.forEach(cherryCtrl.CherryPick, function (object) {
        angular.forEach(object, function (value, key) {
            cherryCtrl.output += value + '  ';

            console.log(cherryCtrl.output);
        });
    });
    return cherryCtrl.output;

}
输出控制台提供:

undefinedHello World  
undefinedHello World  object:5  
undefinedHello World  object:5  Goodbye World  
undefinedHello World  object:5  Goodbye World  object:8 
这令人困惑

我从这里得到了循环的想法:


任何指针都会很受欢迎

所以,这段代码的主要问题是

CherryPick.list.push({
    snippet
});
在旧浏览器中未实现ES6,此代码引发异常:
语法错误
,但在新标准中,此代码引发异常

{ snippet }
是,所以您推式列出的不是字符串而是对象-
{snippet:“snippetvalue”}

绑定到视图后,在对象中添加了特殊的角度属性$$hashKey,其值类似于object:5,这就是为什么在输出中会看到意外的字符串

对于解决方案,您可以添加字符串而不是对象

CherryPick.list.push(// NOTE: without curly brackets
    snippet
);

没有为
cherryCtrl.output
分配值
cherryCtrl.CherryPick
中的数据是什么样子的?该输出有什么让人困惑的地方?为什么不仅仅是
array.join(“”)
?cherryCtrl.CherryPick中的数据看起来像{“snippet”:“Hello World”}