Перемещение элементов в массиве в другой массив.Я получаю ошибку «Ожидаемый идентификатор» - PullRequest
0 голосов
/ 03 июля 2019

У меня есть этот код, который работает везде, кроме IE.Не уверен, как исправить.

Мне нужно удалить элемент из одного массива, а затем поместить его в вершину другого массива.

В настоящее время у меня есть массив статей, в некоторых из этих статей тип hero равен true иостальные просто обычные.Мне нужно найти первую статью героя в массиве и удалить ее.Затем поместите эту статью в начало другого массива.

Я получаю сообщение об ошибке «Ожидаемый идентификатор»

const articles = [
    {title: "article 1", hero: false},
    {title: "article 2", hero: false},
    {title: "article 3", hero: true},
    {title: "article 4", hero: false},
    {title: "article 5", hero: true},
    {title: "article 6", hero: false},
    {title: "article 7", hero: true},
];

const heros = [];

for (var [i, article] of articles.entries()) {
  if (article.hero) {
    heros.unshift(article);
    articles.splice(i, 1);
    break;
  }
}

console.log(heros);
console.log(articles);

Ответы [ 3 ]

1 голос
/ 03 июля 2019

простой цикл работает лучше всего для браузера IE.

const articles = [
    {title: "article 1", hero: false},
    {title: "article 2", hero: false},
    {title: "article 3", hero: true},
    {title: "article 4", hero: false},
    {title: "article 5", hero: true},
    {title: "article 6", hero: false},
    {title: "article 7", hero: true},
];

const heros = [];

for(let i=0;i<articles.length;i++){

  if(articles[i].hero)
    {
    heros.unshift(articles[i]);
    articles.splice(i, 1);
    break;
    }
}

console.log(heros);
console.log(articles);
0 голосов
/ 03 июля 2019

Пожалуйста, попробуйте это:

const articles = [
    {title: "article 1", hero: false},
    {title: "article 2", hero: false},
    {title: "article 3", hero: true},
    {title: "article 4", hero: false},
    {title: "article 5", hero: true},
    {title: "article 6", hero: false},
    {title: "article 7", hero: true},
];

const heros = [];

Object.keys(articles).forEach(function(article) {
  var value = articles[article];
  if (value != undefined && value.hero) {
    heros.unshift(value);
    articles.splice(article, 1);
  }
});

console.log(heros);
console.log(articles);
0 голосов
/ 03 июля 2019

Моя версия

const articles = [
    {title: "article 1", hero: false},
    {title: "article 2", hero: false},
    {title: "article 3", hero: true},
    {title: "article 4", hero: false},
    {title: "article 5", hero: true},
    {title: "article 6", hero: false},
    {title: "article 7", hero: true},
];

let heros = [];
let i = -1;
articles.some(function(article) { i++; return article.hero; })
if (i>=0) {
  heros.push(articles[i]); 
  articles.splice(i,1);
}

console.log(heros);
console.log(articles);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...