有没有办法调节JavaScript数组.find输出到2D数组中的某些"categories"?



我有下面的2D数组。。。

let calendar = [
{date: "1/1",   emoji: "🎆",    title: "New Year"},
{date: "24/1",  emoji: "🏫",    title: "International Day of Education"},
{date: "11/2",  emoji: "🧪",    title: "International Day of Women and Girls in Science"},
];

以及一些变量:

var date

其表示"日期"中的当前日期;天/月";总体安排

var emoji
var title

其表示合适的表情符号和当天的标题。

我现在有了日期(例如"1/1"(,并想在数组中搜索它。

通常,会有这样的输出:日期:";1/1";,表情符号:;🎆&";,标题:";新年">。它只会拿走整个物体。但因为我想将输出作为变量的值:neneneba表情&标题,我需要调整输出,以便在数组中搜索日期并找到表情符号变量的值(预期值:🎆)以及标题变量。(预期值:新年(

您可以使用javascript的Array.filter-方法:

let calendar = [
{date: "1/1",   emoji: "🎆",    title: "New Year"},
{date: "24/1",  emoji: "🏫",    title: "International Day of Education"},
{date: "11/2",  emoji: "🧪",    title: "International Day of Women and Girls in Science"},
]
let filtered = calendar.filter(el => {
return el.date === '1/1'
})
filtered.forEach(el => {
console.log(el.emoji,el.title)
})

注意:Array.filter返回一个包含所有匹配元素的新数组!如果你只需要第一个匹配元素的内容,你应该使用Array.filter:

let calendar = [
{date: "1/1",   emoji: "🎆",    title: "New Year"},
{date: "24/1",  emoji: "🏫",    title: "International Day of Education"},
{date: "11/2",  emoji: "🧪",    title: "International Day of Women and Girls in Science"},
]
let found = calendar.find(el => {
return el.date === '1/1'
})
console.log(found.emoji, found.title)

let date = '1/1'
let {emoji, title} = calendar.filter(item => item.date === date)[0]

但不能清楚地理解你真正想要的是什么。从结果对象中获取所需字段有什么问题?

最新更新