嵌套三元数有些麻烦:
简要:
返回值:一个字符串,其格式为以逗号分隔的名称列表,但最后两个名称除外,后两个名称之间应用&分隔。
输入和输出示例:
list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ])
// returns 'Bart, Lisa & Maggie'
list([ {name: 'Bart'}, {name: 'Lisa'} ])
// returns 'Bart & Lisa'
list([ {name: 'Bart'} ])
// returns 'Bart'
我的JS:
var cache = '';
var data = [ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'}];
for (i = 0 ; i < data.length; i++) {
var people = data[i];
cache += people.name +
(i==((length === 2) || (length === -1 )) ? ' & ' : // (if has two or is before last)
(i==((length >= 3 ) || (length < 2)) ? ', ' : '') //not:(if has two or is before last) + >= 3 or < 2
);
}
三项工作正常,但没有一两个工作
最佳答案
这是我的方法:
function list(arr) {
return arr.map(function(person) { return person.name; }) // Use only .name
.join(", ") // Join with ", "
.replace(/, (?!.*, )/, " & "); // Replace last ", " with " & "
}
关于javascript - 嵌套三元javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35946572/