Как проверить в данных JSON для любого значения столбца существует ли массив / коллекция с использованием угловых JS?

0

index.js

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {

  $scope.data =[{"Id":1,"Title":"en-US","Description":"UnitedStates","MyValues":[{"demo":"dish","Id":100,"Value":"Save"}]},
{"Id":1,"Title":"en-UK","Description":"UK","MyValues":[{"demo":"Myvalu","Id":102,"Value":"Delete"}]}]
  $scope.cols = Object.keys($scope.data[0]);

  $scope.notSorted = function(obj){
    if (!obj) {
        return [];
    }
    return Object.keys(obj);
}  
});

Я хочу проверить в $scope.data есть ли какое-либо значение столбца в качестве массива/коллекции в вышеописанном коде MyValues - array/collection, я пытался использовать angular.isArray(value) но это не работает, любая помощь?

  • 0
    Я не понимаю вопроса. Вы просто пытаетесь определить, является ли $ scope.data массивом?
  • 0
    да, я пытаюсь определить в $ scope.data есть ли массив / коллекция для любого значения столбца
Показать ещё 7 комментариев

2 ответа

2
Лучший ответ

Вы можете использовать эту проверку Array.isArray([1,2,3])

$scope.data.map(function(obj){
  return Object.keys(obj).filter(function(k){
       return Array.isArray(obj[k]);
    });
});

Вышеприведенный код даст вам все списки для каждого элемента массива $ scope.data, вам нужен конкретный формат?

  • 0
    да, его работа, как и ожидалось, на самом деле я попытался это, чтобы узнать ответ на этот вопрос проверить stackoverflow.com/questions/31447821/…
  • 0
    Если вы сможете ответить и на этот вопрос, это будет очень полезно, благодаря stackoverflow.com/questions/31447821/…
1

Лучше всего использовать some() с angular.isArray():

if($scope.data.some(angular.isArray)) {
   //do awesome stuff
}
  • 0
    но как я использовал это в табличном теге? в HTML?
  • 0
    Ваш вопрос, кажется, отклоняется от того, что вы изначально хотели ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню