Vue3如何按照某個字段將數(shù)組分成多個數(shù)組
更新時間:2025年07月30日 09:17:16 作者:滿
這篇文章主要介紹了Vue3如何按照某個字段將數(shù)組分成多個數(shù)組的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
方法一:使用 reduce 方法
const originalArray = [
{ id: 1, category: 'A', name: 'Item 1' },
{ id: 2, category: 'B', name: 'Item 2' },
{ id: 3, category: 'A', name: 'Item 3' },
{ id: 4, category: 'C', name: 'Item 4' },
{ id: 5, category: 'B', name: 'Item 5' },
];
const groupedByCategory = originalArray.reduce((acc, item) => {
const key = item.category;
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(item);
return acc;
}, {});
// 結(jié)果是一個對象,鍵是分類,值是該分類下的數(shù)組
console.log(groupedByCategory);方法二:使用 lodash 的 groupBy 方法
如果你項目中使用了 lodash,可以使用它的 groupBy 方法:
import { groupBy } from 'lodash';
const groupedByCategory = groupBy(originalArray, 'category');
console.log(groupedByCategory);方法三:在 Vue 3 組件中使用計算屬性
import { computed } from 'vue';
export default {
setup() {
const originalArray = [
{ id: 1, category: 'A', name: 'Item 1' },
{ id: 2, category: 'B', name: 'Item 2' },
// ...其他數(shù)據(jù)
];
const groupedByCategory = computed(() => {
return originalArray.reduce((acc, item) => {
const key = item.category;
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(item);
return acc;
}, {});
});
return {
groupedByCategory
};
}
};方法四:轉(zhuǎn)換為數(shù)組的數(shù)組形式
const groupedArray = Object.values(
originalArray.reduce((acc, item) => {
const key = item.category;
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(item);
return acc;
}, {})
);
console.log(groupedArray);
// 輸出: [
// [{ id: 1, category: 'A', name: 'Item 1' }, { id: 3, category: 'A', name: 'Item 3' }],
// [{ id: 2, category: 'B', name: 'Item 2' }, { id: 5, category: 'B', name: 'Item 5' }],
// [{ id: 4, category: 'C', name: 'Item 4' }]
// ]在模板中使用
<template>
<div v-for="(group, category) in groupedByCategory" :key="category">
<h3>Category: {{ category }}</h3>
<ul>
<li v-for="item in group" :key="item.id">
{{ item.name }}
</li>
</ul>
</div>
</template>總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何使用vue和electron開發(fā)一個桌面應(yīng)用
這篇文章主要為大家介紹了詳解如何使用vue和electron開發(fā)一個桌面應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
Vue使用el-table實現(xiàn)自適應(yīng)列寬
這篇文章主要為大家詳細介紹了Vue使用el-table實現(xiàn)自適應(yīng)列寬,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01

