一个js map方法的写法请教

问题:
下面的代码中的两个map方法里我该怎么写才能实现我代码注释的需求?
在不使用ES6的情况下

oldArray:[
   {
      name:'i m name',
      num:230
   },
   {
      name:'i m name',
      num:230
   },
   {
      name:'i m name',
      num:230
   }
]



var newArrayOne = oldArray.map(function(){
     // 回调函数代码
     //这里我想返回以 oldArray['name']值组成的数组
})

var newArrayTwo = oldArray.map(function(){
     // 回调函数代码
     //这里我想返回以 oldArray['num']值组成的数组
})


function todo(newArrayOne,newArrayTwo){  //传入两个数组参数
    //do something
}
阅读 6k
5 个回答

map使用方法

var newArrayOne = oldArray.map(function(v){
    return v.name
})

var newArrayTwo = oldArray.map(function(v){
    return v.num
})

顺便贴一张微博偷来的图。。

clipboard.png

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
返回值是一个新数组

var newArrayOne = oldArray.map(function(e){
    return e.name   //把他name作为返回值就ok了。。。
})

function todo(arr) { //传入两个数组参数

        var names = [];
        var nums = [];
        arr.map(function (item) {
            names.push(item.name);
            nums.push(item.num)
        })
        //do something
    }
 var oldArray = [
      {
        name: 'i m name',
        num: 230
      },
      {
        name: 'i m name',
        num: 230
      },
      {
        name: 'i m name',
        num: 230
      }
    ]



    var newArrayOne = oldArray.map(function (v) {
      // 回调函数代码
       return v.name
      //这里我想返回以 oldArray['name']值组成的数组
    })
    console.log(newArrayOne)

    var newArrayTwo = oldArray.map(function (v) {
      // 回调函数代码
      return v.num
      //这里我想返回以 oldArray['num']值组成的数组
    })
    console.log(newArrayTwo)

    function todo() {  //传入两个数组参数
      //do something
      var one = newArrayOne, two = newArrayTwo;
      console.log("newArrayOne=" + one + ";newArrayTwo=" + two)
    }
    todo();

`
let newArrayOne = oldArray.map((item) => { return item.name})
let newArrayTwo = oldArray.map((item) => { return item.num})
`

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题