這是我目前正在使用的代碼。例如“findCodersBetween(coders, 1960, 1986)”將回傳“[{name: 'Alice',born: 1990}, {name: 'Susan',born: 1960}, {name: 'Charlotte',born: 1986}]”。但我想要的是函式只輸出名稱“['Alice', 'Susan', 'Charlotte']”。我想答案很簡單,我就是想不通。
const allCoders = [
{name: 'Ada', born: 1816},
{name: 'Alice', born: 1990},
{name: 'Susan', born: 1960},
{name: 'Eileen', born: 1936},
{name: 'Zoe', born: 1995},
{name: 'Charlotte', born: 1986},
]
const findCodersBetween = (coders, startYear, endYear) => {
return coders.filter((coder) => coder.born >= startYear && coder.born <= endYear);
};
uj5u.com熱心網友回復:
您只能使用map和回傳name:.map(coder => coder.name)
const allCoders = [
{name: 'Ada', born: 1816},
{name: 'Alice', born: 1990},
{name: 'Susan', born: 1960},
{name: 'Eileen', born: 1936},
{name: 'Zoe', born: 1995},
{name: 'Charlotte', born: 1986},
]
const findCodersBetween = (coders, startYear, endYear) => {
return coders.filter((coder) => coder.born >= startYear && coder.born <= endYear).map(coder => coder.name);
};
console.log(findCodersBetween(allCoders, 1960, 1986))
uj5u.com熱心網友回復:
由于filter回傳與條件匹配的物件(請注意,在您的示例中不會回傳“Alice”,因為1990大于1986)您需要map覆寫回傳的物件陣列,并且對于每個編碼器,只回傳物件的名稱。
const allCoders = [
{name: 'Ada', born: 1816},
{name: 'Alice', born: 1990},
{name: 'Susan', born: 1960},
{name: 'Eileen', born: 1936},
{name: 'Zoe', born: 1995},
{name: 'Charlotte', born: 1986},
]
const findCodersBetween = (coders, startYear, endYear) => {
return coders.filter(coder => {
return coder.born >= startYear && coder.born <= endYear;
}).map(coder => coder.name);
}
console.log(findCodersBetween(allCoders, 1960, 1986));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/505627.html
標籤:javascript 数组 筛选
