Как вычислить размерность колонки bootstarp

123
27 июля 2021, 17:20

Никак не получается написать функцию, которая на выходе выдает массив чисел, соответствующие размерности колонки в bootstrap.

На вход функции задается кол-во текущих колонок (col), например 7 (макс 12). В результате функция должна выдать размерность каждой колонки, распределив на 7 колонок на 12: [2,2,2,2,2,1,1].

Как это реализовать не догоняю. Может у кого мысли есть?

Answer 1

я вам, как ни странно, предложу способ решения вашей задачи, который просто максимально гибок в настройке, чрезвычайно понятен даже начинающим разработчиком, и поэтому его поддержка требует минимальных затрат. глядите:

function makeCols(num){
   swith(num){
      case 12: return [1,1,1, 1,1,1, 1,1,1, 1,1,1]; 
      ....
      case 7:  return [2,2,2, 2,1,1];
      ....
      case 4:  return [3,3,3,3];
      case 3:  return [4,4,4];
      case 2:  return [6,6];
      case 1:  return [12];
      default:  throw new RangeError();
   }
}
Answer 2

Как вариант можно так:

const maxCol = 12; 
const numCol = 7; 
 
 
function getColumnsSizes(numCol, maxCol) { 
  const arr = []; 
  const ceil = Math.floor(maxCol / numCol); 
  const residue = maxCol % numCol; 
  for (let i = 0; i < numCol; i++) { 
    i < residue ? arr.push(ceil + 1) : arr.push(ceil) 
  } 
  return arr; 
} 
 
console.log(getColumnsSizes(numCol, maxCol))

Актуально для разных размеров

READ ALSO
Ошибка CORS при запросе в vk.api

Ошибка CORS при запросе в vk.api

Перепробовал много вариантов, потратил пол дня сегодняНе знаю, что делать

198
Проблема с aws amplify/cognito в реакт приложении

Проблема с aws amplify/cognito в реакт приложении

Пробовал добавить авторизацию c Facebook через Amazon Cognito в моем реакт приложении, конфиг моего Aws Amplify выглядит так:

115