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

Это мой массив

$scope.tooltipsArray = [
              {
                  date: 2018-10-10T07:03:43.835Z,
                  text: 'name1'
              },

              {
                  date: 2018-09-29T18:30:00.000Z,
                  text: 'name2'
              }     
          ];

Как мне обновить дату в соответствии с форматом даты в локали, как этот.

 $scope.tooltipsArray = [
              {
                  date: Wed Oct 10 2018 14:05:27 GMT+0530 (India Standard Time),
                  text: 'name1'
              },

              {
                  date: Sun Sep 30 2018 00:00:00 GMT+0530 (India Standard Time),
                  text: 'name2'
              }     
          ];

Я использовал map () для этого.Но это не работает

var vector = $scope.tooltipsArray.map(function (el) { return new Date(el.date).toLocaleDateString(); });

Может кто-нибудь сказать мне, как это сделать из map() в JavaScript?

Ответы [ 4 ]

0 голосов
/ 10 октября 2018

Функция карты выполняет один за другим элемент массива и запускает функцию обратного вызова, поэтому вам нужно обновить весь объект или обновить одну запись.

el.date = new Date (el.date) .toLocaleDateString ();

0 голосов
/ 10 октября 2018

1 - Удалить .value, почему это вообще на первом месте?

2 - Вам нужно изменить дату внутри объекта, а затем вернуть el вместо date, если вы просто хотитедата, которая будет изменена, также:

    var vector = $scope.tooltipsArray.map(function(el) {
     el.date = new Date(el.date).toLocaleDateString();
     return el;
    });
0 голосов
/ 10 октября 2018

Вы можете использовать приведенный ниже код -

    $scope.tooltipsArray = [
                  {
                      date: "2018-10-10T07:03:43.835Z",
                      text: 'name1'
                  },

                  {
                      date: "2018-09-29T18:30:00.000Z",
                      text: 'name2'
                  }     
              ];

    var vector = $scope.tooltipsArray.map(function(el) {return { 'date':new Date(el.date).toString(),'text':el.text}});
    console.log(vector);

Выход будет как ниже -

[
{date: "Wed Oct 10 2018 12:33:43 GMT+0530 (India Standard Time)", text: "name1"}
{date: "Sun Sep 30 2018 00:00:00 GMT+0530 (India Standard Time)", text: "name2"}
]
0 голосов
/ 10 октября 2018

Почему после tooltipsArray есть ключ .value?

Вы присвоили массиву tooltipsArray, поэтому, если не задействован прокси, ожидайте доступ к массиву через $scope.tooltipsArray.

Чтобы исправить это, просто удалите .value.

var vector = $scope.tooltipsArray.map(function (el) { return new Date(el.date).toLocaleDateString(); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...