亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

格式化一串名稱,例如“Bart、Lisa & Maggie”

格式化一串名稱,例如“Bart、Lisa & Maggie”

收到一只叮咚 2022-12-29 10:38:20
在完成 freecodecamp javascript 之后,我想我嘗試了 codewars javascript 基礎知識。第一次失敗。我知道那里的解決方案,但我想讓你看看我的想法是什么。親切的問候function list(names){  //your code here  if (names.length >=1) {        let entry = names.shift();    console.log(entry.name+", ")  }  if(names.length <=1){    console.log(" &"+names.name)  }}給定:一個包含名稱散列的數組返回:一個字符串,格式為由逗號分隔的名稱列表,最后兩個名稱除外,這兩個名稱應由&符號分隔。例子:list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ])// returns 'Bart, Lisa & Maggie'list([ {name: 'Bart'}, {name: 'Lisa'} ])// returns 'Bart & Lisa'list([ {name: 'Bart'} ])// returns 'Bart'list([])// returns ''注意:所有哈希值都經過預先驗證,并且只包含 AZ、az、'-' 和 '.'。
查看完整描述

3 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

你可以這樣做:


console.log( list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ]) )


console.log( list([ {name: 'Bart'}, {name: 'Lisa'} ]) )


console.log( list([ {name: 'Bart'} ]) )


console.log( list([]) )


function list(arr){

  let len = arr.length;

  if(len==0) return '';

  return arr.slice(0, len-1).map(p=>p.name).join(", ") + (len>1 ? ' & ' : '') + arr[len-1].name;

}


查看完整回答
反對 回復 2022-12-29
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

您的版本不會產生預期的結果。


function list(names){

 if (names.length > 1) {

   return `${otherNames(names)} & ${names[names.length - 1].name}`

 } else if (names.length === 1) {

   return names[0].name

 }

  return '';

}


function otherNames(array) {

  return array.splice(0, array.length - 1).map(person => person.name).join(', ');

}

應該這樣做。


查看完整回答
反對 回復 2022-12-29
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

對于這類事情,將任務分解為單獨的功能,然后根據需要將它們組合起來可能很有用。這里函數prop用于獲取屬性name,函數list用于從名稱數組生成字符串。兩者結合在 中listByName,map用于從輸入數組中的每個對象中獲取名稱。


const list = arr => arr.slice(0,-1).join(", ") + (arr.length>1 ? " & " : "") + arr.slice(-1);

const prop = propName => x => x[propName];

const listByName = arr => list(arr.map(prop('name')))


console.log(listByName([{ name: "Bart" }, { name: "Lisa" }, { name: "Maggie" }]));

console.log(listByName([{ name: "Bart" }, { name: "Lisa" }]));

console.log(listByName([{ name: "Bart" }]));

console.log(listByName([]));

根據用例,您可能希望為使用無效輸入的情況添加錯誤檢查代碼:例如,沒有 name 屬性的對象,或數組中的非對象,或輸入 taht 不是傳遞給 的數組listByName。



查看完整回答
反對 回復 2022-12-29
  • 3 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號