【问题标题】:how can i solve this exercise with array methods?我怎样才能用数组方法解决这个练习?
【发布时间】:2022-01-13 04:46:52
【问题描述】:

大家好,对不起我的英语。我有这个对象数组,我需要得到如下输入: {name: Karen, age: 12} -> Karen-12.

我该怎么做?

这是练习:

function nicknameMap(p) {
  
}

const p = [
  { name: 'ninny', age: 19},
  { name: 'albert', age: 20},
  { name: 'daniel', age: 60},
  { name: 'bob', age: 20},
  { name: 'wilfred', age: 40},
  { name: 'rob', age: 22},
  { name: 'gary', age: 9},
  { name: 'robin', age: 19},
  { name: 'carl', age: 43 },
  { name: 'v', age: 82 }
];

const nicknames = nicknameMap(p);
console.log(p);
console.log(nicknames);``` 

【问题讨论】:

  • 到目前为止您尝试了哪些方法,遇到了哪些问题?

标签: javascript arrays methods


【解决方案1】:

使用.map()数组方法如下:

function nicknameMap(p) {
    return p.map(({name,age}) => `${name}-${age}`);
}
//output
//[
//  "ninny-19",
//  "albert-20",
//  "daniel-60",
//  "bob-20",
//  .....
//]

function nicknameMap(p) {
    return p.map(({name,age}) => `${name}-${age}`);
}

const p = [
  { name: 'ninny', age: 19},
  { name: 'albert', age: 20},
  { name: 'daniel', age: 60},
  { name: 'bob', age: 20},
  { name: 'wilfred', age: 40},
  { name: 'rob', age: 22},
  { name: 'gary', age: 9},
  { name: 'robin', age: 19},
  { name: 'carl', age: 43 },
  { name: 'v', age: 82 }
];

const nicknames = nicknameMap(p);
console.log(p);
console.log(nicknames);

【讨论】:

  • 谢谢大家。你能解释一下为什么“(({name,age})”包含第二轮括号吗?
  • {} 周围的 () 是您通常在函数参数上使用的那些,例如函数 nicknamesMap()p 周围的那些。如有必要,将箭头函数转换为常规函数进行确认。
【解决方案2】:
function nicknameMap(p) {
  let result = Array();
  p.forEach((n) => {
    result.push(`${n.name}-${n.age}`);
  });
  return result;
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

【讨论】:

    【解决方案3】:

    最好自学,但我假设您已经对此有所了解并提出问题是因为您已经没有选择了。

    编辑:amlxv 解决方案是一种更“Javascript”的方式,在技术上比我的更正确。

    以下是您的问题的解决方案。

    function nicknameMap(p) {
        let arr = [];
        
        for(let i = 0; i<p.length; i++){
          arr.push(p[i].name + "-" + p[i].age);
        }
        
        return arr;
    }
    
    const p = [
      { name: 'ninny', age: 19},
      { name: 'albert', age: 20},
      { name: 'daniel', age: 60},
      { name: 'bob', age: 20},
      { name: 'wilfred', age: 40},
      { name: 'rob', age: 22},
      { name: 'gary', age: 9},
      { name: 'robin', age: 19},
      { name: 'carl', age: 43 },
      { name: 'v', age: 82 }
    ];
    
    const nicknames = nicknameMap(p);
    console.log(p);
    console.log(nicknames);
    

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 1970-01-01
      • 2019-04-10
      • 2013-02-21
      • 2016-06-13
      • 1970-01-01
      • 2023-01-01
      • 2020-11-28
      • 2012-03-16
      相关资源
      最近更新 更多