gpt4 book ai didi

javascript - 如何使用 reduce 将信息传递给基础组件?/在 VueJS 中通过计算 Prop 获取正确的数据

转载 作者:行者123 更新时间:2023-12-04 08:00:33 25 4
gpt4 key购买 nike

我目前正在开发一个盘点应用程序,我正在尝试显示 boxID 那个盒子里面的物品数量在我制作的 baseCard 组件上。
我做的计算属性boxCards需要以这种格式吐出数据 [{title: '', amount: null}]所以它可以推到每个 baseCard元素。
目前,我的计算属性给了我标题,但我无法弄清楚如何获取每个框内的项目数量。
boxInLocation 返回这个数组:["", "Box 1", "Box 4", "Box 4"]这很好,但现在我需要计算每个框在该区域出现的次数,然后将其推送到 reshapedItems 中的函数金额:点。
这只是我需要使用的一个简单的 reduce 方法吗?因为在计算数组的长度时,我只能实际生成一个数字。
此外,仅仅减少数组不会向 reshapedItem 的每个单独实例吐出数字。
关于我可以在这里做什么的任何想法?
干杯!
App.Vue 数据:

data(){
userData: {
items: [
{
itemName: 'test book',
category: 'Books',
box: 'Box 3',
location: 'Kitchen',
},
{
itemName: 'test book 2',
category: 'Books',
box: 'Box 3',
location: 'Kitchen',
},
{
itemName: 'test book 3',
category: 'Books',
box: '',
location: 'Basement',
},
{
itemName: 'test record',
category: 'Records',
box: 'Box 1',
location: 'Basement',
},
{
itemName: 'test record 2',
category: 'Records',
box: 'Box 4',
location: 'Basement',
},
{
itemName: 'test furniture',
category: 'Furniture',
box: 'Box 2',
location: 'Garage',
},
{
itemName: 'test movie 1',
category: 'Movies',
box: 'Box 2',
location: 'Garage',
},
{
itemName: 'test movie 2',
category: 'Movies',
box: 'Box 2',
location: 'Garage',
},
{
itemName: 'test movie 3',
category: 'Movies',
box: 'Box 2',
location: 'Garage',
},
{
itemName: 'test Comicbook',
category: 'Movies',
box: 'Box 4',
location: 'Basement',
},
],
boxes: [
{ name: 'Box 1', location: 'Basement' },
{ name: 'Box 2', location: 'Garage' },
{ name: 'Box 3', location: 'Kitchen' },
{ name: 'Box 4', location: 'Basement' },
],
}

页面组件
  data() {
return {
items: this.userData.items,
boxes: this.userData.boxes,
}
},
computed: {
boxCards() {
const filteredItems = this.items.filter((item) => item.location === 'Basement')
const itemsInBoxes = filteredItems.map((filteredItem) => {
return filteredItem.box
})

const filteredBoxes = this.boxes.filter((box) => box.location === 'Basement')

const reshapedBoxes = filteredBoxes.map((filteredBox) => {
return { boxID: `${filteredBox.name}`, amount: 100 }
})
return reshapedBoxes
},

最佳答案

您可以计算 this.items 数组中与相关框具有相同框名称的项目:

return this.boxes
.filter((box) => box.location === 'Basement')
.map((box) => ({
boxId: `${box.name}`,
amount: this.items.filter(item => item.box === box.name).length
}));

关于javascript - 如何使用 reduce 将信息传递给基础组件?/在 VueJS 中通过计算 Prop 获取正确的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66499719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com