Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在typescript中迭代包含多个子数组的数组_Javascript_Typescript_Angular7 - Fatal编程技术网

Javascript 如何在typescript中迭代包含多个子数组的数组

Javascript 如何在typescript中迭代包含多个子数组的数组,javascript,typescript,angular7,Javascript,Typescript,Angular7,抱歉,伙计们,我在stackoverflow中遇到了类似的问题,并实现了一些,但没有得到确切的输出。 我对angular 7和typescript都是新手。 我有一个数组可能包含多个数组。这个数组在运行时出现,所以我不知道在一个单亲数组中会有多少子数组。 例如,假设我有一个数组: uniqueValues[]=[[现代贸易,3959],[传统贸易,2303],[所有其他,1183]] 我希望输出如下: 现代贸易 3959 传统贸易 2303 所有其他 1183 我所做的: getUni

抱歉,伙计们,我在stackoverflow中遇到了类似的问题,并实现了一些,但没有得到确切的输出。
我对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
实际包含的内容。