У меня есть пользовательский интерфейс, в котором есть таблица HTML, в которую мы можем добавлять динамические строки и столбцы (angularjs)
Таблица имеет 2 статических столбца ID & Description, остальные столбцы являются динамическими столбцами, где пользователь должендобавить один или несколько столбцов. (щелчок по кнопке). Один щелчок по кнопке «Сохранить». Я хочу проверить, добавил ли пользователь уникальные динамические столбцы или нет.
Ниже переменной хранится массив строк, как показано ниже:
$scope.myTable.Rows
Ниже приведен массив, сгенерированный, когда пользователь добавляет только один динамический столбец и 2 строки.Здесь id & description - статический столбец, а "0" - добавленный динамический столбец.
{0: "1111", description: "desc1", id: "1111"}
{0: "2222", description: "desc2", id: "2222"}
Другой пример добавления 3 динамических столбцов и 3 строк:
{0: "a1", 1: "a2", 2: "a3", description: "desc1", id: "1111"}
{0: "a5", 1: "a6", 2: "a7", description: "desc2", id: "2222"}
{0: "a9", 1: "a10", 2: "a11", description: "desc3", id: "3333"}
Я хочупроверить, является ли указанный массив уникальным только с помощью комбинации динамических столбцов.т.е. согласно указанному выше массиву установленные значения динамических столбцов 0,1,2 не должны повторяться ни в одной другой строке массива.
Таким образом, приведенный ниже массив не должен проходить проверку:
{0: "a1", 1: "a2", 2: "a3", description: "desc1", id: "1111"}
{0: "a5", 1: "a6", 2: "a7", description: "desc2", id: "2222"}
{0: "a1", 1: "a2", 2: "a3", description: "desc3", id: "3333"}
Как вы видите, 3-й ряд выше похож на 1-й ряд.Я не хочу принимать во внимание столбец "id" & "description"
Хотя ниже все еще уникален:
{0: "a1", 1: "a2", 2: "a3", description: "desc1", id: "1111"}
{0: "a5", 1: "a6", 2: "a7", description: "desc2", id: "2222"}
{0: "a1", 1: "a2", 2: "a9", description: "desc3", id: "3333"}
Я попытался просмотреть пару постов здесь: Как я могу проверить, есть ли в массиве объектов повторяющиеся значения свойств?
Но большинство из них приходится на просмотр одного свойства и посмотреть, есть ли дубликаты, но не в объединенном наборе.
Я надеюсь, что дал четкое объяснение моего требования.Дайте мне знать, если вам нужна дополнительная информация.
- Обновлено -
Я пробовал как:
let array = [
{0: "a1", 1: "a2", 2: "a3", description: "desc1", id: "1111"},
{0: "a5", 1: "a6", 2: "a7", description: "desc2", id: "2222"},
{0: "a1", 1: "a2", 2: "a3", description: "desc3", id: "3333"}];
let jsonRows = JSON.parse(JSON.stringify(array));
var valueArr = jsonRows.map(function(item){ return item."0" });
//above gives error: Uncaught SyntaxError: Unexpected string
var isDuplicate = valueArr.some(function(item, idx){
return valueArr.indexOf(item) != idx
});
console.log(jsonRows);