Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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_Node.js_Angular_Typescript - Fatal编程技术网

Javascript 在Typescript中循环遍历数组

Javascript 在Typescript中循环遍历数组,javascript,node.js,angular,typescript,Javascript,Node.js,Angular,Typescript,Angular连接到node.js,后者从mongodb获取数据。 这很好,但现在我需要将typescript组件中的变量映射到backend node.js 在浏览器控制台中,数据结构如下所示: 现在我写了let temp\u max=res[0]['list'].map(res=>res.main.temp\u max),但是如何用“I”替换[0],typescript中的正确语法是什么 我尝试了(下面的代码)并得到一个错误: ngOnInit() { this.contactSe

Angular连接到node.js,后者从mongodb获取数据。 这很好,但现在我需要将typescript组件中的变量映射到backend node.js

在浏览器控制台中,数据结构如下所示:

现在我写了
let temp\u max=res[0]['list'].map(res=>res.main.temp\u max)
,但是如何用“I”替换[0],typescript中的正确语法是什么

我尝试了(下面的代码)并得到一个错误:

ngOnInit() {
    this.contactService.getContacts()
      .subscribe(res => {
        console.log(res);
        for (var i = 0; res.length; i++) {
          let temp_max = res[i]['list'].map(res => res.main.temp_max)
          let temp_min = res[i]['list'].map(res => res.main.temp_min)
          let alldates = res[i]['list'].map(res => res.dt)

          let deviceData = []
          alldates.forEach((res) => {
            let jsdate = new Date(res * 1000)
            deviceData.push(jsdate.toLocaleTimeString('en', { year: 'numeric', month: 'short', day: 'numeric' }))
          })
          console.log(deviceData)
        })
      }
}

请帮我解决我的问题。感谢Eden

循环的结束条件部分缺失:

for (let i = 0; i < res.length; i++)
for(设i=0;i
别忘了forEach也可以有一个迭代器:

res.forEach((resItem,i)=>{


您只需循环
res
,然后循环
list
即可实现此目的,无需任何for循环

const temp_max = res.map((r) => r.list.map((list) => list.main.temp_max));
const temp_min= res.map((r) => r.list.map((list) => list.main.temp_min));
const alldates = res.map((r) => r.list.map((list) => list.dt));

console.log(temp_max, temp_min, alldates)

并得到一个错误
错误是什么?查看你的
以了解
条件,如果你的数组中有任何项目,你将得到一个无限循环Chris,欢迎来到stackoverflow。与其只是建议使用某个东西,不如我们给出一个有效的解决方案。谢谢Kamran!是的,谢谢如何映射变量是一个好主意如果它起作用,那么你能接受这个答案吗?
const temp_max = res.map((r) => r.list.map((list) => list.main.temp_max));
const temp_min= res.map((r) => r.list.map((list) => list.main.temp_min));
const alldates = res.map((r) => r.list.map((list) => list.dt));

console.log(temp_max, temp_min, alldates)