数组中对象的k,v值的转换

  • Post author:
  • Post category:其他


一.由var arr = [{label:’男’,value: 1}, {label:’女’,value: 0}] 得到:

// obj2 = {‘1’: ‘男’, ‘0’: ‘女’}


注意:reduce的第二种形式中,不能直接用return amount[item.value] = item.label 获取的是女,为最后的值,而是需要将reduce的所有值返回

  // 第一种方法用遍历
const arr = [{label: '男', value: 0},{label: '女', value: 1}]
  function f(arr) {
      // 写代码
      const obj = {}
      arr.forEach((item) => {
        obj[item.value] = item.label
      })
      return obj
    }
    const obj = f(arr) // obj ===> {0: '男', 1:'女'}
    console.log(obj);


// obj ===> {0: '男', 1:'女'}



//第二种方式用reduce

const arr = [{
      label: '男',
      value: 0
    }, {
      label: '女',
      value: 1
    }]

    function f(arr) {
      // 写代码

      return arr.reduce((amount, item) => {
        amount[item.value] = item.label
        // 不能直接去前面就return 那样就只能获取的是最后一次的值,然后就不在执行了
        return amount
      }, {})
    }
    const obj = f(arr) // obj ===> {0: '男', 1:'女'}
    console.log(obj);

二.由 var arr = [{label:’男’,value: 1}, {label:’女’,value: 0}]  得到:

// arr2 = [‘男’, ‘女’]

//第一种方式

var arr = [{label:'男',value: 1}, {label:'女',value: 0}]
function f(arr) {
// 写代码,得到
cosnt newArr = []
arr.forEach(item =>{
const label = item.label
newArr.push(label)

}
return newArr
}
var arr2 = f(arr2);
console.log(arr2)
// arr2 = ['男', '女']



// 第二种方式
var arr = [{label:'男',value: 1}, {label:'女',value: 0}]
function f(arr) {
// 写代码,得到
const newArr = arr.map(item => item.label)
return newArr
}
var arr2 = f(arr2);
console.log(arr2)
// arr2 = ['男', '女']



版权声明:本文为weixin_48837605原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。