当前位置: 首页 > 知识库问答 >
问题:

javascript - sku,通过已有的sku组合和用户选中的sku,输出全部的规格?

霍修筠
2023-08-10

商品的sku组合:

[    ['白','X','中年'],    ['白','X','老年'],    ['白','XL','老年'],    ['黑','X','中年'],    ['黑','X','老年'],    ['黑','XL','中年'],    ['黑','XL','老年']]

用户选择的规格: ["白","XL",""]

通过两组数据得知,当用户选中的规格是["白","XL",""]时在sku组合中并没有["白","XL","中年"]组合,所以中年是禁止选中的。规格的数量和名称不是固定的

怎么用js开发一个函数,输出的是全部规格的可选状态

[    {        "白":true,        "黑":true    },    {        "X":true,        "XL":true    },    {        "中年":false,        "老年":true    }]

共有1个答案

魏臻
2023-08-10
function getSpecStatus(skuCombinations, userSelection) {  const specStatus = Array.from({ length: userSelection.length }, () => ({}));  skuCombinations.forEach(sku => {    sku.forEach((spec, index) => {      if (userSelection[index] === "" || userSelection[index] === spec) {        specStatus[index][spec] = specStatus[index][spec] || false;      }    });  });  skuCombinations.forEach(sku => {    let match = true;    for (let i = 0; i < sku.length; i++) {      if (userSelection[i] !== "" && userSelection[i] !== sku[i]) {        match = false;        break;      }    }    if (match) {      for (let i = 0; i < sku.length; i++) {        specStatus[i][sku[i]] = true;      }    }  });  return specStatus;}const skuCombinations = [  ['白', 'X', '中年'],  ['白', 'X', '老年'],  ['白', 'XL', '老年'],  ['黑', 'X', '中年'],  ['黑', 'X', '老年'],  ['黑', 'XL', '中年'],  ['黑', 'XL', '老年']];const userSelection = ["白", "XL", ""];console.log(getSpecStatus(skuCombinations, userSelection));
 类似资料:
  • sku

    Front-end development toolkit, powered by Webpack, Babel, CSS Modules, Less, ESLint, Prettier, Jest and Storybook. Quickly get up and running with a zero-config development environment, or optionally

  • 本文向大家介绍magento 通过SKU获取产品,包括了magento 通过SKU获取产品的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 本文向大家介绍使用vue实现多规格选择实例(SKU),包括了使用vue实现多规格选择实例(SKU)的使用技巧和注意事项,需要的朋友参考一下 做过商城项目的小伙伴们,相信大家多多少少都会接触到规格选择这个模块,也就是所说的SKU。 公司最近在做一个下单系统,这里面就涉及到这个SKU,说实话之前我是没有写过这个的,刚开始也是有点迷茫把,不知道该如何下手,因为要考虑到后端那边返回的数据结构、库存、多规格

  • vk-u-goods-sku-popup 是一个商品多规格 sku 选择器组件。此插件为 vk-unicloud-router 插件的一部分独立出来而形成的。 基本使用示例 <vk-u-goods-sku-popup v-model="sku_key" :custom-action="findGoodsInfo" :mode="1" border-radius="20" @add-c

  • 问题内容: 我知道这在这里被问了很多,而且我尝试使用其他示例并入我自己的示例,但是我似乎无法完成这项工作。 我有sku,日期和费用列,我想查看所有3列,但仅按最大日期(按sku分组)查看。目前: 需要: 这是我的SQL的样子: 这是设计视图的外观(我更是一个视觉化的人): 设计视图 这是第二周的自学,如何操作Access以及它如何工作,所以如果我们能用蜡笔画出如何正确完成此工作的方法,那就太好了。

  • SKU数据接口 - GetSkus 获取sku列表 可根据名称模糊查询返回sku列表 Request Parameters Parameter name Type Description Required search_word string 名称模糊查询,如果为空,返回所有sku No brand_id int 品牌id,如果为空,返回所有品牌下的sku No category_id int 品