简体   繁体   English

Array.push() 不工作,推送后返回空数组

[英]Array.push() not working return null array after push

I am using Vue project to my mini search system and its database is firebase.我在我的迷你搜索系统中使用 Vue 项目,它的数据库是 firebase。 I would like to know if these is a language error or its library error.我想知道这些是语言错误还是库错误。 where the Array.push() is not working properly. Array.push() 无法正常工作的地方。

I could show only screen shot because it could not show in other reproduction when I reproduce the code.我只能显示屏幕截图,因为当我重现代码时它无法在其他重现中显示。

let trainVal1 = []
  for(let n in dataTrainingVal) {
    console.log({key: n, ...dataTrainingVal[n]})
    trainVal1.push({key: n, ...dataTrainingVal[n]})
    console.log(trainVal1)
  }

在此处输入图片说明

thanks!谢谢!

Just create a object for the {key: n, ...dataTrainingVal[n]} like var obj = {key: n, ...dataTrainingVal[n]} .只需为{key: n, ...dataTrainingVal[n]}创建一个对象,如var obj = {key: n, ...dataTrainingVal[n]} Then push it.然后推一下。

var trainVal1 = []
  for(let n in dataTrainingVal) {
    var obj = {key: n, ...dataTrainingVal[n]}
    trainVal1.push(obj)
    console.log(trainVal1)
  }

try also var insted of let也尝试var insted of let

you should change your code like below你应该像下面一样改变你的代码

let trainVal1 = []
  for(let n = 0; n < dataTrainingVal.length; n++) {
    console.log({key: n, data:dataTrainingVal[n]})
    trainVal1.push({key: n, data:dataTrainingVal[n]})
    console.log(trainVal1)
  }

The error is on the spread operator section.错误出现在扩展运算符部分。 I have updated your code to a working solution.我已将您的代码更新为有效的解决方案。

 let trainVal1 = [] let dataTrainingVal = [1,2,3] for(let n in dataTrainingVal) { console.log(dataTrainingVal[n]) trainVal1.push({key: n, val: dataTrainingVal[n]}) console.log(trainVal1) }

Please note: Do not use for in loop for array iterations.请注意:不要在循环中使用 for 数组迭代。

Note: for...in should not be used to iterate over an Array where the index order is important.注意:for...in 不应用于迭代索引顺序很重要的数组。 Read More on MDN 阅读更多关于 MDN

It seems to work fine... the only missing piece is defining dataTrainingVal.它似乎工作正常......唯一缺少的部分是定义 dataTrainingVal。

     let trainVal = []
       let dataTrainingVal = {firstname: 'Pedro', lastName: 'Juan'}
       for(let n in dataTrainingVal) {
          console.log({key: n, ...dataTrainingVal[n]})
          trainVal.push({key: n, ...dataTrainingVal[n]})
          console.log(trainVal)
       }

The o/p : o/p :

(2) [{…}, {…}] (2) [{…}, {…}]

0: {0: "P", 1: "e", 2: "d", 3: "r", 4: "o", key: "firstname"} 0: {0: "P", 1: "e", 2: "d", 3: "r", 4: "o", key: "firstname"}

1: {0: "J", 1: "u", 2: "a", 3: "n", key: "lastName"} 1: {0: "J", 1: "u", 2: "a", 3: "n", key: "lastName"}

length: 2长度:2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM