收藏
回答

这个循环遍历中,想重写生成一个新的对象/数组,这个键值该怎么写?

比如我现在有一个res.data,应该是对象或者数组
我想把它其中一项如name,变成大写,然后重新组成一个新的对象或数组,
newlist的name 应该怎么写才正确

现在[name]肯定是错误的

for ( var index in res.data ){
  newlist[index][name] = res.data[index].name.toUpperCase()                
}

回答关注问题邀请回答
收藏

3 个回答

  • 忍冬
    忍冬
    2020-06-10

    重新声明数组,name按你改的,然后push进去。楼上的逻辑就是这样

    2020-06-10
    有用 1
    回复 4
    • Mu
      Mu
      2020-06-10
      感谢提供思路。。。但。。。
      2020-06-10
      回复
    • 忍冬
      忍冬
      2020-06-10回复Mu
      怎么了,这逻辑没错啊
      2020-06-10
      回复
    • Mu
      Mu
      2020-06-10
      但。我就是想问如果按我那种格式的基础上怎么改 你们回答的问题思路和技巧对我来说有点高级 举一反三的思路固然好 但关键是我求解的仅仅是一 这样又套了一层新知识我需要一点时间理解 还是谢谢了
      2020-06-10
      回复
    • 忍冬
      忍冬
      2020-06-10回复Mu
      没有逻辑一样的,push就是把那个值放进去,你有了num=[]后,然后声明个test={},值放进{}后,再 num.push(test)就行了
      2020-06-10
      回复
  • 默
    2020-06-10
    只能帮你到这了
    
    为什么非要纠结那个索引? 
    
    let newList = [];
        let res = {
          data: [
            {
              name: "hello",
              id: 13521,
            },
            {
              name: "word",
              id: 15125,
            }
          ]
        }
        res.data.forEach((item,index)=>{
          let newObj = {
            nameitem.name.toUpperCase(),
            idparseInt(Math.random(item.id) * 10),
          }
          newList.push(newObj);
        })
        console.log(newList);
    
    2020-06-10
    有用 1
    回复 5
    • Mu
      Mu
      2020-06-10
      感谢提供思路 push这个我学一下 但是index去哪了。。。可能我提问不清楚吧 因为除了name 我还有其他的要处理哎
      2020-06-10
      回复
    • Mu
      Mu
      2020-06-10
      感谢了,我会复制过去一行一行试验的。   至于『为什么非要纠结那个索引?』 站着一个还不会的人的角度 可能就是反问一句『为什么不要纠结那个索引』吧 因为我之前那个 不知道叫对象还是数组 不是有一个index组成的序号么 。。。 我也只能解释到这了。。。 我自己也说不明白
      2020-06-10
      回复
    • 默
      2020-06-10回复Mu
      了解 过来人 可用可不用index  想用索引在里面console.log(index)就行
      2020-06-10
      回复
    • Mu
      Mu
      2020-06-10回复
      谢了 我消化一下
      2020-06-10
      回复
    • Mu
      Mu
      2020-06-10
      push是不是不管它原来里面有没有这个name 都可以push进去 而我之前写那种方法 是需要它原来就有name 然后我才能重新给她赋值进去
      2020-06-10
      回复
  • Mr.Zhao
    Mr.Zhao
    2020-06-10

    2020-06-10
    有用 1
    回复 8
    • Mu
      Mu
      2020-06-10
      谢谢谢谢。。。 就是    JSON.parse(JSON.stringify(list))没理解是怎么回事 好像是转成json又转回来了 要是不套这层知识 可能这个问题我能好理解一点  我试了直接让 newList = list 似乎也行。。。。
      2020-06-10
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-06-10回复Mu
      浅拷贝,如果不加,会把list的值也给改掉
      2020-06-10
      回复
    • Mu
      Mu
      2020-06-10回复Mr.Zhao
      好的好的 我理解一下
      2020-06-10
      回复
    • Mu
      Mu
      2020-06-10回复Mr.Zhao
      似乎明白了,我之前尝试先声明varList为空 然后循环里会显示Cannot read property 'name' of undefined,是因为他本身没有这个索引名吧
      2020-06-10
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-06-10回复Mu
      不叫索引名,叫属性,第一次循环的时候,数组的索引为0的对象还是undefined,给undefined的属性赋值,所以就报错了
      2020-06-10
      回复
    查看更多(3)
登录 后发表内容
问题标签