Javascript 如何显示Vuejs/JS中对象数组中的唯一项和发生次数?
我正在为这个项目使用Vuejs开发一个清单应用程序,但我的问题是与JS相关的。 在我的数据中,我有一个用户数据,它是从表单中获取的记录的用户数据,然后是静态类别和位置,您可以从下面选择 我试图找出独特的类别,以及它们在新的对象数组中出现的次数,这些对象看起来像:Javascript 如何显示Vuejs/JS中对象数组中的唯一项和发生次数?,javascript,vue.js,filter,array.prototype.map,Javascript,Vue.js,Filter,Array.prototype.map,我正在为这个项目使用Vuejs开发一个清单应用程序,但我的问题是与JS相关的。 在我的数据中,我有一个用户数据,它是从表单中获取的记录的用户数据,然后是静态类别和位置,您可以从下面选择 我试图找出独特的类别,以及它们在新的对象数组中出现的次数,这些对象看起来像: [{title: 'Books', amount: 3 }, {title: 'Recods', amount: 1 }, ...] 我认为我所面临的是一个范围问题 资料 我试图让它像我在这里的“书”一样工作,但适用于所有类别。 这是
[{title: 'Books', amount: 3 }, {title: 'Recods', amount: 1 }, ...]
我认为我所面临的是一个范围问题
资料
我试图让它像我在这里的“书”一样工作,但适用于所有类别。
这是我用下面的代码显示的内容。它的内容是“Items:3”,因为我的userData中有3本书,但我需要它来显示每个独特类别的数量。
我不知道在下面的代码中放置什么
filteredItems=items.filter((item)=>item.category==='Books')。长度
方法/功能
convertedCategories() {
const items = this.userData.items
const filteredItems = items.filter((item) => item.category === 'Books').length
function getItemCountOfCategory(categoryName) {
return filteredItems
}
function convertCategoriesIntoCards(categories) {
return categories.map((el) => {
return {
title: el,
amount: getItemCountOfCategory(el),
}
})
}
return convertCategoriesIntoCards(this.userData.categories)
},
我道歉,如果我没有把它分解得足够清楚;对于我来说,从这么多代码中提取出一行与问题相关的代码仍然非常困难
如果有什么不清楚的地方,请告诉我 像这样的事情应该行得通
convertedCategories() {
const items = this.userData.items
function getItemCountOfCategory(categoryName) {
return items.filter((item) => item.category === categoryName).length
}
function convertCategoriesIntoCards(categories) {
return categories.map((el) => {
return {
title: el,
amount: getItemCountOfCategory(el),
}
})
}
return convertCategoriesIntoCards(this.userData.categories)
},
哇!这确实有效!非常感谢。所以它只是将我制作的filteredItems变量移动到函数本身,然后用参数代替我上面写的'Books'值?我很高兴我没有完全偏离这一点,但我想知道是什么让我认为在函数之外定义变量是正确的调用。。。无论如何,感谢您快速简洁的回复!我不确定我问的问题是否恰当。
convertedCategories() {
const items = this.userData.items
function getItemCountOfCategory(categoryName) {
return items.filter((item) => item.category === categoryName).length
}
function convertCategoriesIntoCards(categories) {
return categories.map((el) => {
return {
title: el,
amount: getItemCountOfCategory(el),
}
})
}
return convertCategoriesIntoCards(this.userData.categories)
},