var str = "{cat: 5}";
var obj = eval(str);
var json = JSON.stringify(obj);
Мой профиль, что хочу то и пишу, это вас не должно касаться.
Поставьте break после str = false в том же ifе, т.к. дальше нет смысла продолжать сравнения.
#include <iostream>
using namespace std;
int main() {
const int n = 1000;
int a,b, i, j;
bool str= true;
float arr[n][n];
cout << "Введите размерность:\n";
cin >> a;
cout << "Заполнение массива:\n";
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++) {
cout <<"Введите элемент ["<<i+1<<","<<j+1<<"]:";
cin >> arr[i][j];
}
}
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++)
cout << arr[i][j]<<" ";
}
cout << "\n";
}
cout << "Введите номер строки: \n";
cin >> b;
for (int i = 0; i < a; i++) {
if (arr[b-1][i] != arr[i][b-1]) str = false;
}
if (str == true){
cout <<"Строка и столбец совпадают";
} else {
cout <<"Строка и столбец не совпадают";
}
const res = cof.reduce((a,v,i)=>(a[v]=(a[v]||0)+km[i],a),{});
// для подсчета используем метод Array.reduce(...)
const res = cof.reduce(
// для каждого значения массива cof в цикле будет вызвана эта функция со следующими параметрами:
// a - аккумулятор
// v - текущее значение из массива cof
// i - индекс этого значения в массиве cof
(a,v,i)=>{
// если в аккумуляторе еще нет (или оно = 0) ключа v то сзодаем его присваивая ему 0
if( !a[v] ){
a[v] =0;
}
// к данным для ключа v добавляем значение из массива km[i]
a[v]=a[v] + km[i];
// возвращаем аккумулятор
return a;
},
{} // задаем начальное значение аккумулятора как {} - ассоциативный массив/он же объект
);
templatesSet.map(t => t.replace(/%(.*?)%/g, (s,k)=>person[k]));
// цикл по массиву templatesSet
for(var i=0; i<templatesSet.length; i++){
// достаем текущее значение из массива templatesSet по индексу i
var t = templatesSet[i];
// заменяем все вхождения (совпадения) регулярки в строку
t = t.replace(
// сама регулярка, говорящая что нужно найти ВСЕ (/g) вхождения
// шаблона %(.*?)% в строку, при этом сопоставление всего шаблона
// станет первой переменной, а сопоставление скобочной группы
// станет второй переменной передаваемых в функцию
/%(.*?)%/g,
// в эту вот функцию, которая будет вызвана для каждого
// сопоставления шаблона со строкой. Например для строки
// "/items/%id%/%salary%" сопоставление произойдет 2 раза
// первый раз для %id%, и первой переменной будет %id% а второй id
// второй раз для %salary%, и первой переменной будет %salary% а второй salary
// а то что вернет эта функция будет вставленно в строку
// вместо сопоставляемого участка, тоесть первый раз
// вместо %id% вставится содержимое person["id"], второй
// раз вместо %salary% вставится содержимое person[salary]
(s,k)=>{
return person[k];
}
);
// ну и втыкаем в массив новое значение по индексу
templatesSet[i] = t;
}
"{a:{b:1}}"