Оценка в функциях стрелок - PullRequest
0 голосов
/ 24 апреля 2018

Я новичок в функциях стрелок и пытаюсь добавлять в массив только когда он не неопределен, но я не могу понять синтаксис. Как мне написать оператор if ниже? Спасибо!

let carList = cars.map(car => (
  if(car.owner !== "undefined"){ // this is the condition I want.
  do something
 }
));

Ответы [ 3 ]

0 голосов
/ 24 апреля 2018

Вам нужно добавить typeof, если вы хотите сделать сравнение через строку.
Кроме того, заключите функцию в фигурные скобки.

let carList = cars.map(car => {
  if(typeof(car.owner) !== "undefined"){ // this is the condition I want.
  do something
 }
});

или выбросите строковые кавычки

let carList = cars.map(car => {
  if(car.owner !== undefined){ // this is the condition I want.
  do something
 }
});

Или просто не используйте логическое значение.

let carList = cars.map(car => {
  if(!car.owner){ // this is the condition I want.
  do something
 }
});

let cars = [{},{owner:'foo'},{owner:'bar'}, {fun:'none'}];
let carList = cars.map(car => {
  if(!car.owner){ // this is the condition I want.
    console.log(car,'has no owner');
 }}
);
0 голосов
/ 24 апреля 2018

Звучит так, как вам нужно filter, а не map:

const cars = [
  { owner: '', age: 12 },
  { owner: 'bob', age: 1 },
  { owner: undefined, age: 2 },
  { owner: 'steve', age: 13 },
  { age: 1 }
];

let carList = cars.filter(car => car.owner);

console.log(carList);
0 голосов
/ 24 апреля 2018

Как и любая другая функция, тело должно быть в фигурных скобках, а не в скобках:

let carList = cars.map(car => {
   // code here
});

Помните, что map() создает новый элемент для каждого элемента в исходном массиве.Если вы хотите выполнить операцию только над определенными элементами списка, вы должны сначала использовать filter():

let carList = cars.filter(car => {
   return car.owner !== undefined
}).map(car => {
   // Do something to each car
});

Обратите внимание, что undefined является ключевым словом и не требует кавычек.Использование строкового значения "undefined", хотя и допустимо, может быть невероятно запутанным, поэтому я советую против него.

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