我正在遍历数组,以角度转换字符串,但是只有'map'选项有效,'for'无效。
chart.categories = chart.categories.map(function (category)
return $translate.instant(category);
});
不工作
for (categorie of chart.categories) { categorie = $translate.instant(categorie); }
另一方面,当我像这样遍历chart.series时,它会起作用:
for (serie of chart.series) {
serie.name = $translate.instant(serie.name);
}
第二个是我翻译属性,而第一个是我翻译对象本身,这与事实有关吗?
编辑:
这是我的图表对象:
{
"categories": [
"JOSÉ HERLANI DA CRUZ",
"Class"
],
"series": [
{
"name": "Attendance Percentage in Class",
"data": [
100,
100
]
}
]
}
答案 0 :(得分:4)
在(for item of items)
中,您无法更改item
,因为item是新的局部变量,只有您要更改的局部变量。不是items
中的on。您可以更改item.property
,因为引用item
仍在items
例如如果您有这样的话:
var a = 1;
var b = a;
b = 2;
console.log("a =", a);
console.log("b =", b);
b
将是2
,而a
将仍然是1
(不变)
但是如果您有这个:
var a = {}
a.x = 1;
var b = a;
b.x = 2;
console.log("a.x =", a.x);
console.log("b.x =", b.x);
a.x
和b.x
均为2
,因为它们引用相同。
我认为这也是您得出的结论
第二个是我翻译属性,而第一个是我翻译对象本身,这与事实有关吗?
这将起作用:
var newCategories = [];
for (categorie of chart.categories) {
newCategories.push($translate.instant(categorie));
}
chart.categories = newCategories