javascript - 使用现有数组的唯一连接值从现有数组创建新数组

标签 javascript arrays

有谁知道如何使用现有数组的唯一连接值从现有数组创建新数组?

const originalArray = [
  [
    { value: 'red', id: 99 },
    { value: 'blue', id: 100 },
  ],
  [
    { value: 'small', id: 101 },
    { value: 'medium', id: 102 },
  ],
  [
    { value: 'modern', id: 103 },
    { value: 'classic', id: 104 },
  ],
];
//
//
const newArrayBasedOnOriginalArray = [
  { value: 'red/small/modern' },
  { value: 'red/small/classic' },
  { value: 'red/medium/modern' },
  { value: 'red/medium/classic' },
  { value: 'blue/small/modern' },
  { value: 'blue/small/classic' },
  { value: 'blue/medium/modern' },
  { value: 'blue/medium/classic' },
];

我计算出新数组的长度应该总是如下:

// length of new array
const lengthOfNewArray = originalArray
  .map((value) => {
    return value.length;
  })
  .reduce((current, old) => {
    return current * old;
  });
//
//
console.log('length of new array:', lengthOfNewArray); // 8

最佳答案

你可以递归地做

const originalArray = [
  [
    { value: 'red', id: 99 },
    { value: 'blue', id: 100 },
  ],
  [
    { value: 'small', id: 101 },
    { value: 'medium', id: 102 },
  ],
  [
    { value: 'modern', id: 103 },
    { value: 'classic', id: 104 },
  ],
];

const getPossibleCombination = (currentValue, arraysRemaining) => {
  if(arraysRemaining.length === 0) return currentValue

  const values = []
  
  const firstArray = arraysRemaining[0]
  
  firstArray.forEach(({value}) => {
    values.push(getPossibleCombination(`${currentValue}/${value}`, arraysRemaining.slice(1, arraysRemaining.length)))
  })
  
  return values.flat()
}

const values = getPossibleCombination('', originalArray)
console.log(values)

关于javascript - 使用现有数组的唯一连接值从现有数组创建新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73331186/

相关文章:

java - 数组大小与java无关吗?

javascript - 无法将 QQmlListReference 分配给 QString

javascript - 无法在 React 组件的 let/var 中存储箭头函数

arrays - 在 bash 中将一行(包含字符串和整数)转换为整数数组

javascript - 如何获取javascript对象中具有相似值的键的数量?

c++ - 搜索类对象数组 C++

python - f_oneway 当数据为列表形式时

javascript - 我正在尝试使用 jQuery 创建 "Sinking ships"

javascript - 通过 JQuery AJAX 一起发送 FormData 和字符串数据?

javascript - 将字符串转换为盲文