Javascript 如何在typescript中迭代包含多个子数组的数组
抱歉,伙计们,我在stackoverflow中遇到了类似的问题,并实现了一些,但没有得到确切的输出。Javascript 如何在typescript中迭代包含多个子数组的数组,javascript,typescript,angular7,Javascript,Typescript,Angular7,抱歉,伙计们,我在stackoverflow中遇到了类似的问题,并实现了一些,但没有得到确切的输出。 我对angular 7和typescript都是新手。 我有一个数组可能包含多个数组。这个数组在运行时出现,所以我不知道在一个单亲数组中会有多少子数组。 例如,假设我有一个数组: uniqueValues[]=[[现代贸易,3959],[传统贸易,2303],[所有其他,1183]] 我希望输出如下: 现代贸易 3959 传统贸易 2303 所有其他 1183 我所做的: getUni
我对angular 7和typescript都是新手。
我有一个数组可能包含多个数组。这个数组在运行时出现,所以我不知道在一个单亲数组中会有多少子数组。
例如,假设我有一个数组:
uniqueValues[]=[[现代贸易,3959],[传统贸易,2303],[所有其他,1183]]
我希望输出如下:
现代贸易
3959
传统贸易
2303
所有其他
1183
我所做的:
getUniqueValues(name){
this.temps.columns.forEach(element => {
if(element.name.toUpperCase() === name.toUpperCase()){
// it is successfully populating as you can see i have displayed it in console
this.uniqueValues= element.stats.frequencyDistribution;
// so the above array looks like the array defined in the starting of this post
console.log(this.uniqueValues);
}
});
for(let i = 0; i < this.uniqueValues.length; i++){
let childArray = this.uniqueValues[i];
for(let j = 0; j < childArray.length; j++){
console.log(childArray[j]);
}
}
}
getUniqueValues(名称){
this.temps.columns.forEach(元素=>{
if(element.name.toUpperCase()==name.toUpperCase()){
//它正在成功填充,正如您所看到的,我已经在控制台中显示了它
this.uniqueValues=element.stats.frequencyDistribution;
//因此,上面的数组看起来像本文开头定义的数组
console.log(this.uniqueValues);
}
});
for(设i=0;i
但它会显示如下输出:[,
M
O
D
E
R
N
T
R
A
D
E
,
3
9
5
9
有人能告诉我路径吗?使用
forEach
-
uniqueValues.forEach(function (child) {
child.forEach(function (childChild) {
console.log(childChild);
});
});
对于ES6和更具可读性、功能性的解决方案:
const myData = [['MODERN TRADE',3959], ['TRADITIONAL TRADE',2303], ['ALL OTHER',1183]];
const processedData = myData.reduce((output, curr) => {
const [name, value] = curr;
output += `${name}\n${value}\n`;
return output;
}, '');
由于tsc 3.6.3实际上并没有推断元组类型,因此公平地说,它是一种不明确的类型,即[string,number]
,而是指定数组类型union(string | number)[
,您可以显式地将数据标识符键入:
const myData: Array<[string, number]> = [['MODERN TRADE',3959], ['TRADITIONAL TRADE',2303], ['ALL OTHER',1183]];
constmydata:Array=[['现代贸易',3959],'传统贸易',2303],'所有其他',1183];
请注意,每个子元素都是TypeScript中的一种类型。
uniqueValues[]=[[MODERN TRADE,3959],[TRADITIONAL TRADE,2303],[ALL OTHER,1183]]
是无效语法,不幸的是……此输出表明childArray
实际上是一个字符串。您可能有[[MODERN TRADE,3959],[TRADITIONAL TRADE,2303],”[ALL OTHER,1183]“]
@mplungjan我写它是为了显示,我们得到的数组处于运行时,因此这些值成功地填充了iuniqueValues[]@mplungjan当然,如果这是代码,代码就不会运行,但关键是我们不知道实际的代码是什么。我们无法调试应用程序的无效表示。//正如您所看到的,它正在成功填充,我已经在控制台中显示了它
,但是this.uniqueValues=element.stats.frequencydribution;
覆盖this.uniqueValues
每次迭代。请显示this.uniqueValues
实际包含的内容。