当尝试通过传入字符串数组来构造类时,新的对象字符串数组为空。
我尝试了几种不同的方法来初始化构造函数中的新对象字符串数组,包括但不限于以下内容:
this.newArray = oldarray.slice();
this.newArray = Array.from(oldarray);
this.newArray = oldarray.map( s => { return s; });
遍历旧数组并将元素一次推入新数组。
这里有趣的是,在创建for循环时,我注意到字符串数组的行为就像它具有一个称为“ array”的属性一样。因此,因为oldarray.length = 0
而不是oldarray.array.length = 5
我可以在调试器中看到它。如果我尝试更改代码以引用oldarray.array
,它会强调并抱怨.array
部分,并且无法在ng serve
下编译。
我知道这可能最终会变得简单/愚蠢,这只是我盯着同一代码几个小时的问题。
export class Widget {
public role: string;
public array: WidgetTuple[];
constructor(role: string, tuplearray?: WidgetTuple[]) {
this.role = role;
this.array = [];
if (tuplearray != undefined) {
for (var lcv = 0; lcv < tuplearray.length; lcv++) {
var tupl = new WidgetTuple(tuplearray[lcv].widgetGrouper);
this.array.push(tupl);
}
}
}
}
export class WidgetTuple {
public widgetGrouper: string[];
constructor(strvalues?: string[]) {
this.widgetGrouper = [];
if (strvalues != undefined) {
this.widgetGrouper = strvalues.slice();
//this.widgetGrouper = strvalues.map()
//for (var lcv = 0; lcv < strvalues.length; lcv++) {
// var entry = strvalues[lcv].toString();
// this.widgetGrouper.push(entry);
//}
}
}
}
我希望原始的widgetGrouper字符串数组中的字符串元素包含在添加到Widget数组中的新WidgetTuple对象中。
到目前为止,所有尝试都会在新创建的对象中产生空字符串数组结果。
预先感谢您的帮助。
- strvalues Array(0) [] Object
+ array Array(4) ["widgetone", "widgettwo", "someitem", …] Object
length 0 number
+ __proto__ Array(0) [, …] Object
答案 0 :(得分:0)
弄清楚了。如果可以的话,我会删除这个问题,但是谁知道...这可能有一天会帮助其他人。
基本上,答案就在任何的危险之内。
在组件视图中,我为小部件对象输入了 any 类型的输入。然后,在视图中使用该对象时会错误地引用该对象(添加array属性)。