为了账号安全,请及时绑定邮箱和手机立即绑定

我需要知道我在这里做错了什么

我需要知道我在这里做错了什么

慕丝7291255 2021-11-18 10:11:53
{    "messages": [{        "msgFrom": "13223821242",        "msgBody": "Hi there"    }, {        "msgFrom": "Bill",        "msgBody": "Hello!"    }]}var loop = () => {  var arr = []  for (var i = 0 ; i<messages.length; i ++) {    arr.push(messages[1])  }  return loop()  console.log(arr)}我需要遍历这个对象并只获取推送到新数组中的消息相同的
查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

arr.push(messages[1])

1 应该是 i,你每次都抓取相同的索引


查看完整回答
反对 回复 2021-11-18
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

有多个问题


假设对象有一个变量 obj


var loop = () => {

  var arr = []

  for (var i = 0 ; i< obj.messages.length; i ++) { //messages is a key of an object, so messages is undefined, it should be obj.messages.

    arr.push(messages[i]) //wrong index, you should push `i` and not 1

  }

  return arr; // loop() is a function, causing endless recursion, causing stack overflow!

  console.log(arr) // will never print since function already returns!; move before return if you want it to print

}


查看完整回答
反对 回复 2021-11-18
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

你可以使用解构,它简短而简单。


var obj = { "messages": [

        {

            "msgFrom": "13223821242",

            "msgBody": "Hi there"

        }, {

            "msgFrom": "Bill",

            "msgBody": "Hello!"

        }

    ]

};


var arr = [...obj.messages];

console.log(arr);


查看完整回答
反对 回复 2021-11-18
  • 3 回答
  • 0 关注
  • 291 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信