js es6 reduce函數, 通過規格生成sku

const specs = [{ name: '顏色', values: ['紅色', '藍色', '綠色'] },{ name: '尺寸', values: ['S', 'M', 'L'] }
];function generateSKUs(specs) {return specs.reduce((acc, spec) => {const newAcc = [];for (const combination of acc) {for (const value of spec.values) {newAcc.push({ ...combination, [spec.name]: value });}}return newAcc;}, [{}]); // 初始值是一個空對象數組
}const skus = generateSKUs(specs);
console.log(skus);

輸出的值顯示

[{ 顏色: '紅色', 尺寸: 'S' },{ 顏色: '紅色', 尺寸: 'M' },{ 顏色: '紅色', 尺寸: 'L' },{ 顏色: '藍色', 尺寸: 'S' },{ 顏色: '藍色', 尺寸: 'M' },{ 顏色: '藍色', 尺寸: 'L' },{ 顏色: '綠色', 尺寸: 'S' },{ 顏色: '綠色', 尺寸: 'M' },{ 顏色: '綠色', 尺寸: 'L' }
]

參數說明

accumulator:累加器累積回調的返回值。
currentValue:當前處理的數組元素。
index(可選):當前處理的數組元素的索引。
array(可選):調用reduce()方法的數組本身。
initialValue(可選):作為第一次調用callback函數時accumulator參數的值。
-------------------------
acc, spec 上方這兩個參數就是這個意思acc累加器累積回調的返回值,第一次會返回空數據,也就是尾部定義的 [{ }]定義0或者其他就會返回其他,后面也會返回相同類型,記得一定要寫return就行spec  當前行數據 類似map 返回的

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65148.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65148.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65148.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WPF通過反射機制動態加載控件

Activator.CreateInstance 是 .NET 提供的一個靜態方法&#xff0c;它屬于 System 命名空間。此方法通過反射機制根據提供的類型信息。 寫一個小demo演示一下 要求&#xff1a;在用戶反饋界面點擊建議或者評分按鈕 彈出相應界面 編寫MainWindow.xmal 主窗體 <Window x:C…

寬帶、光貓、路由器、WiFi、光纖之間的關系

1、寬帶&#xff08;Broadband&#xff09; 1.1 寬帶的定義寬帶指的是一種高速互聯網接入技術&#xff0c;通常包括ADSL、光纖、4G/5G等不同類型的接入方式。寬帶的關鍵特點是能夠提供較高的數據傳輸速率&#xff0c;使得用戶可以享受到穩定的上網體驗。 1.2 寬帶的作用寬帶是…

Pytest鉤子函數,測試框架動態切換測試環境

在軟件測試中&#xff0c;測試環境的切換是個令人頭疼的問題。不同環境的配置不同&#xff0c;如何高效切換測試環境成為許多測試開發人員關注的重點。你是否希望在運行測試用例時&#xff0c;能夠動態選擇測試環境&#xff0c;而不是繁瑣地手動修改配置&#xff1f; Pytest 測…

印象筆記07——試一試PDF標注

印象筆記07——試一試PDF標注 [!CAUTION] 根據第六期&#xff0c;我再次查詢了資料&#xff0c;印象筆記還是有一些可圈可點的功能的&#xff08;當然部分有平替&#xff09;&#xff0c;針對會員作用&#xff0c;開發使用場景雖然是逆向的&#xff0c;但我堅信這是一部分人的現…

【Vue】分享一個快速入門的前端框架以及如何搭建

先上效果圖: 登錄 菜單: 下載地址: 鏈接&#xff1a;https://pan.baidu.com/s/1m-ZlBARWU6_2n8jZil_RAQ 提取碼&#xff1a;ui20 … 主要是可以自定義設置token,更改后端請求地址較為方便。 應用設置: 登錄與token設置: 在這里設置不用登錄,可以請求的接口: request.js i…

通過串口通信控制led燈的亮滅

初始化led燈的gpio接口控制燈的亮滅 初始化uart1串口 將gpio9和gpio10設置為復用模式進行串口通信 通過串口的輸入輸出函數實現串口通信控制led燈的亮滅

計算機xinput1_4.dll丟失怎么修復?

電腦運行時常見問題及修復指南 作為軟件開發從業者&#xff0c;深知電腦在日常使用中難免會遇到各種問題&#xff0c;如文件丟失、文件損壞和系統報錯等。這些問題不僅影響工作效率&#xff0c;還可能帶來數據丟失的風險。本文將詳細介紹一些常見問題及其解決辦法&#xff0c;…

DeepSeek V3“報錯家門”:我是ChatGPT

搜 &#xff1a;海訊無雙Ai 要說這兩天大模型圈的頂流話題&#xff0c;那絕對是非DeepSeek V3莫屬了。 不過在網友們紛紛測試之際&#xff0c;有個bug也成了熱議的焦點—— 只是少了一個問號&#xff0c;DeepSeek V3竟然稱自己是ChatGPT。 甚至讓它講個笑話&#xff0c;生成…

C++:范圍for

范圍for&#xff08;range-based for&#xff09;是C的一種循環結構&#xff0c; 是在 C11 這個標準中引入的&#xff0c;這種類型的for循環使得遍歷數組、容器中的元素更加簡便和直觀。 一、范圍for語法 for ( 類型 變量名 : 數組名 ) 語句 //多條語句需要加?括號 示例&#…

C++基礎概念復習

前言 本篇文章作基礎復習用&#xff0c;主要是在C學習中遇到的概念總結&#xff0c;后續會繼續補充。如有不足&#xff0c;請前輩指出&#xff0c;萬分感謝。 1、什么是封裝&#xff0c;有何優點&#xff0c;在C中如何體現封裝這一特性&#xff1f; 封裝是面向對象編程&…

前端工程化之手搓webpack5 --【elpis全棧項目】

前端工程化之手搓webpack5 --【elpis全棧項目】 導讀 基本流程&#xff1a;輸入 – 編譯 – 輸出 #mermaid-svg-V8Gi7RFNikCuEhax {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-V8Gi7RFNikCuEhax .error-icon{fil…

vue3使用setup語法糖組件基礎傳值

(1)&#xff1a;defineProps&#xff1a;傳入要使用的props定義自定義屬性&#xff0c;傳遞過來的值具有響應式&#xff0c;和props一樣&#xff1b; (2)&#xff1a;defineEimts&#xff1a;傳入要自定義的事件&#xff0c;emit實例去傳入自定義事件的值&#xff0c;和$emit或…

S7-200可用的modbus RTU完成位輪詢

網上的信息比較散&#xff0c;官方說明也不充分&#xff0c;尤其是涉及主站按需寫入的部分沒有見到現成案例。 以下記錄完成位輪詢讀取&#xff0c;同時按需寫入的程序。 初始化主站&#xff0c;初始化塊的完成位M9.3通過上升沿觸發一個M9.4&#xff0c;用于后面啟動輪詢。 第…

特征點檢測與匹配——MATLAB R2022b

特征點檢測與匹配在計算機視覺中的作用至關重要,它為圖像處理、物體識別、增強現實等領域提供了堅實的基礎。 目錄 Harris角點檢測 SIFT(尺度不變特征變換) SURF(加速穩健特征) ORB(Oriented FAST and Rotated BRIEF) 總結 特征點檢測與匹配是計算機視覺中的一項基…

Vue3實現PDF在線預覽功能

?&#x1f308;個人主頁&#xff1a;前端青山 &#x1f525;系列專欄&#xff1a;Vue篇 &#x1f516;人終將被年少不可得之物困其一生 依舊青山,本期給大家帶來Vue篇專欄內容:Vue3現PDF在線預覽功能 前言 在開發中&#xff0c;PDF預覽和交互功能是一個常見的需求。無論是管理…

常用的EDA 工具

1&#xff09; 邏輯設計&#xff1a; Cadence 的Verilog XL ? 模擬電路設計&#xff1a; Mentor 的Viewdraw ? 電路合成&#xff1a; Synopsys 的Design Compiler ? 電路仿真&#xff1a; Synopsys 的Hsim 和Hspice ? 人工布局&#xff1a; Cadence 的Virtuso ? 自動布局…

基于ESP32的桌面小屏幕實戰[5]:PCB下單

1. 焊接調試前準備 PCB下單 點擊“PCB下單” 檢查一下DRC 確認無錯誤之后&#xff0c;確認下單 然后就會跳轉到下面的網頁 基本上保持默認選項即可。可以看到“焊盤噴鍍”有3個選項。 在選擇表面處理工藝時&#xff0c;應綜合考慮產品的具體需求、環保法規以及成本等因素。例…

云原生架構的演變與實踐

云原生架構的演變與實踐 在現代軟件開發的時代背景下&#xff0c;云原生架構日益成為推動業務轉型的關鍵。它以云為中心的應用架構和開發思維&#xff0c;不僅包括了容器化的基本形式&#xff0c;更涉及全方位的應用管理及優化。本文將圍繞云原生的特征、遷移步驟以及模式展開…

探索現代 Web 開發中的流行技術:深入學習 Vite 的使用

在前端開發的世界中&#xff0c;構建工具扮演著越來越重要的角色。從 Webpack 到 Parcel&#xff0c;再到 Rollup&#xff0c;每個工具都有自己的獨特定位和目標。而今天&#xff0c;我們要討論的是一款近年來迅速崛起并受到廣泛歡迎的構建工具— Vite。 本文將從基本原理到實…

如何通過 6 種方式將照片從 iPhone 傳輸到戴爾 PC?

“你知道如何將iPhone上的照片轉移到電腦上嗎&#xff1f;我的iPhone上有很多照片&#xff0c;所以我想將這些照片從iPhone轉移到電腦上。請給我一些建議&#xff0c;謝謝&#xff01;” - Nirenling 在戴爾社區中發布 您的iPhone是否被各種精彩的照片和視頻占滿而存儲空間不…