簡體   English   中英

如何輸出字符串列表而不是 [object : object]?

[英]How do I output a list of strings instead of [object : object]?

我無法輸出像Bart、Lisa 和 Maggie這樣的名字列表,而是有一個[object: object]、[object, object] 和 [object, object] 的列表

這是代碼:

 let names = null; function list(names) { return names.slice(0, names.length - 2).join(', ') + ', ' + names.slice(names.length - 2, names.length + 1).join(' & '); } console.log(list(names));

假設您的names數組如下所示:

const names = [{name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'}]

我認為你可以做這樣的事情:

 const names = [{name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'}] function list(names){ let str = ''; if (names.length !== 0) { // Get the last name and remove it from the names array let last = names.pop(); if (names.length !== 0) { // names may be empty if there was only one value in the initial names array // Then you need to transform your array from [{name: 'Bart'},...] // to ['Bart', 'Lisa', 'Maggie'] : str = names.map( (val, i, arr) => { if (i !== arr[arr.length - 1]) { return val.name; } }).join(', ') // From here, str is equal to "Bart, Lisa" // Now we add "& Maggie" to the string str += ' & ' + last.name; } } return str; } console.log(list(names)) // "Bart, Lisa & Maggie"

(編輯)或者這是另一種方法,通過保留您的初始代碼:

 const names = [{name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'}] function list(names){ return names.slice(0, names.length - 2).map(value => value.name).join(', ') + ', ' + names.slice(names.length - 2, names.length + 1).map(value => value.name).join(' & '); } console.log(list(names)) // "Bart, Lisa & Maggie"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM