我试图将一个字符串数组转换为单个字符串。我用基本的术语快速了解了我需要的东西:
https://plnkr.co/edit/t2KeZJ8yOtDo2KxDQuzD?p=preview
在应用程序中我正在处理我需要使用两个不同的控制器,我为控制器创建了一个工厂来共享数据,因此我将示例设置为这样。
这是我试图用来循环数组并添加到范围变量的函数,其中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
这令人困惑。
我从这里接受了循环的想法:
任何指针都会很受欢迎
答案 0 :(得分:0)
所以,这段代码的主要问题是
CherryPick.list.push({
snippet
});
在旧浏览器中没有实现ES6,此代码引发异常:Syntax Error
,但在新标准中这个
{ snippet }
是Shorthand property names (ES6),因此您推送列出的不是字符串而是对象 - {snippet: "snippetvalue"}
。
绑定到视图后,在对象中添加了特殊的角度属性 $$ hashKey ,其值为 object:5 ,这就是你在输出中看到意外字符串的原因。
对于解决方案,您可以添加字符串而不是对象
CherryPick.list.push(// NOTE: without curly brackets
snippet
);