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