Конвертировать объект в массив Angular - PullRequest
0 голосов
/ 17 декабря 2018

Я новичок в javascript и угловых.Предположим, у меня есть объект JSON с {"xyz":{Key:info}}.Я хочу добавить {Key:info} в массив.

Я хочу сделать "xyz" массивом.Например: {"xyz":[{Key:info}]} Так что я могу добавить больше {Key:info} в этот массив - {"xyz":[{Key:info},{Key:info},{Key:info}]}.

Также мне нужно каждый раз проверять, является ли xyz объектом, затем делать его массивом.и нажмите только один раз.

Я не понимаю, как я могу сделать это с угловым JavaScript.

РЕДАКТИРОВАТЬ: - Добавлено orig JSON

$scope.ContentObj= {
      "attribute-set": [
        {
          "attribute": [
            {
              "_name": "text-align",
              "__prefix": "xsl",
              "__text": "end"
            },
            {
              "_name": "end-indent",
              "__prefix": "xsl",
              "__text": "10pt"
            }
          ],
          "_name": "odd__header",
          "__prefix": "xsl"
        },
        {
          "attribute": {
            "_name": "font-weight",
            "__prefix": "xsl",
            "__text": "bold"
          },
          "_name": "pagenum",
          "__prefix": "xsl"
        }
      ],
      "_version": "2.0",
      "__prefix": "xsl"
    }

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Вы можете использовать typeof, чтобы узнать, является ли это объектом, а затем вы можете получить его содержимое и инициализировать массив с ним

let myObject = {"xyz":{Key:"info"}};

if(typeof myObject.xyz === "object"){ //Check if object
  const content = myObject.xyz; //Get the content
  myObject.xyz = [content]; //Put the content in an array
}

console.log(myObject);

Если вам нужно использовать его в своем коде, как это указано в комментариях:

if(typeof $scope.ContentObj.stylesheet["attribute-set"][4].xyz === "object"){ //Check if object
  const content = $scope.ContentObj.stylesheet["attribute-set"][4].xyz; //Get the content
  $scope.ContentObj.stylesheet["attribute-set"][4].xyz = [content]; //Put the content in an array
}

console.log(myObject);
0 голосов
/ 17 декабря 2018

Попробуйте так.

$scope.yourObject.xyz.push(Object.assign([], yourObject))
0 голосов
/ 17 декабря 2018

Это может быть то, что вы спрашиваете.

if (!angular.isArray($scope.yourObject.xyz)){
    $scope.yourObject = {
        xyz: []
    }
}
$scope.yourObject.xyz.push({Key:'info'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...