vue.js如何處理數(shù)組對象中某個字段是否變?yōu)閮蓚€字段
場景
產(chǎn)品要求做一個時間步驟條,使用目前后端已返回的數(shù)據(jù)進(jìn)行操作實現(xiàn)。時間步驟條要求日期和時間分開顯示且相同日期只顯示第一個日期。
圖左邊為實現(xiàn)效果,右邊為后臺返回的接口。接口中current字段表示當(dāng)前到達(dá)第幾步,從0開始,對應(yīng)顯示數(shù)組的前幾個展示。后臺返回的是一個整的日期時間字段dateTime。


處理思路
- 拿出nodes數(shù)組對象中與current字段對應(yīng)的步驟數(shù)據(jù)放入新數(shù)組slicedNodes;
- 再循環(huán)處理slicedNodes數(shù)組對象里的dateTime字段,將其拆分成date, time兩個字段;
- 比較date字段是否有重復(fù)的,沒有則賦值該字段到一個新數(shù)組prevDate;
- 將新數(shù)組添加到result數(shù)組即可組裝完成。
代碼實現(xiàn)
computed: {
// 過程數(shù)組
processedNodes() {
// 將數(shù)組截取的副本返回到新的數(shù)組對象:array.slice[start, end)
const slicedNodes = this.twrProcess?.nodes.slice( 0, parseInt(this.twrProcess?.current,10) + 1);
const result = [];
let prevDate = null;
slicedNodes?.forEach((node) => {
// 將dateTime日期時間字段拆分成date, time兩個字段
const [date, time] = node.dateTime.split(" ");
const newObj = { ...node };
// 將不一致的date放入newObj.date
if (date !== prevDate) {
newObj.date = date;
prevDate = date;
}
newObj.time = time;
result.push(newObj);
});
return result;
},
},總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3?+?elementplus實現(xiàn)表單驗證+上傳圖片+?防止表單重復(fù)提交功能
這篇文章主要介紹了Vue3?+?elementplus?表單驗證+上傳圖片+?防止表單重復(fù)提交,本文給大家展示效果圖和完整代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10
echarts設(shè)置tootip輪播切換展示(vue3搭配vue-echarts粘貼即用)
這篇文章主要為大家介紹了echarts設(shè)置tootip輪播切換展示效果,vue3搭配vue-echarts粘貼即用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2023-10-10
vue列表數(shù)據(jù)刪除后主動刷新頁面及刷新方法詳解
這篇文章主要給大家介紹了關(guān)于vue列表數(shù)據(jù)刪除后主動刷新頁面及刷新方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
關(guān)于vue組件的更新機(jī)制?resize()?callResize()
這篇文章主要介紹了關(guān)于vue組件的更新機(jī)制?resize()?callResize(),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04

