У меня есть массив JSON, похожий на структуру ниже.JSON Массив Манипуляции с использованием простого JavaScript или Lodash
[{
"variable_name": "VAR1_XYZ",
"variable_values": [
{
"DomainName": "Env1",
"Value": "ABC Process 1",
(some more key-value pairs)
},
{
"DomainName": "Env2",
"Value": "DEF Process 1",
(some more key-value pairs)
}],
},{
"variable_name": "VAR2_UVW",
"variable_values": [
{
"DomainName": "Env1",
"Value": "ABC Process 2",
(some more key-value pairs)
},
{
"DomainName": "Env2",
"Value": "DEF Process 2",
(some more key-value pairs)
}],
}];
Я представляю эти данные в структуре таблицы с «variable_name» (как/клетка строки)-значения для работы с несколькими «ИмяДоменом» с (как колонки) в „нг-сетке“.
У меня также есть требование, когда пользователь выбирает одно из «доменных имен», значения «variable_name» в выбранном домене должны быть сопоставлены с значениями с другими доменами и в зависимости от о том, есть ли совпадение или нет, ячейки таблицы «ng-grid» должны быть закодированы цветом как «зеленые» или «красные» в зависимости от того, существует ли совпадение или нет.
Я просматривал простой манипуляции с javascript/json и подчеркивание/lodash, чтобы понять, что является наиболее эффективным способом сравнения объектов JSON со следующими структурами, и я не мог прийти к какому-либо выводу о том, как его достичь. Я также новичок в библиотеке lodash/underscore и, возможно, это вызывает эту путаницу, если я над инженерией, или если я принимаю правильный путь для решения этой проблемы.
Моя конечная цель - создать общую функцию, которая принимает выбранное доменное имя и приведенный ниже массив, чтобы предоставить выходной массив, который имеет список истинных/ложных логических значений для каждого «variable_name»/«DomainName», которое я могу используйте для окраски сетки.
Так, например, если пользователь выбирает DomainName как «Env1», я хочу получить все «переменное имя» под «Env1» и сравнить значения соответствующих «переменных_имя» с другими доменами и создать результат объекта, аналогичный
{Env1 : true, Env2: false, Env3 : true}
, который я могу использовать для окраски ng-сетки. Не могли бы вы предложить, какой подход следует предпринять, если это нужно сделать, используя lodash/underscore? вместо простого javascript?
Благодарим вас за решение и скрипку. Хотя решение, которое вы предложили самому, сравнивает имена доменов, я хотел сравнить значения для «variable_name» для каждого домена. Я все равно должен использовать предлагаемое решение с минимальными изменениями. Спасибо за помощь. Ценить это. – Satya