LoginSignup
1
0

More than 5 years have passed since last update.

[ES6 JS]Array Helper Methods

Last updated at Posted at 2017-08-24

Array Helper Methods

forEach

var colors = ['red', 'blue', 'green'];

for (var i = 0; i < colors.length; i++) {
  console.log(colors[i]);
}

+ES+6+

let colors = ['red', 'blue', 'green'];

colors.forEach(function(color) {
  console.log(color);
});

map

var numbers = [1, 2, 3];
var doubledNumbers = [];

for (var i = 0; i < numbers.length; i++) {
  doubledNumbers.push(numbers[i] * 2);
}

console.log(doubledNumbers);

+ES+6+

let numbers = [1, 2, 3];
let doubledNumbers = numbers.map(function(number) {
  return number * 2;    
});

console.log(doubledNumbers);

pluck implementing

function pluck(array, prop) {
  return array.map((el) => {
    return el[prop];
  });
}

filter

var products = [
  { name: 'banana', type: 'fruit' },
  { name: 'cucumber', type: 'vegetable' },
  { name: 'orange', type: 'fruit' },
  { name: 'celery', type: 'vegetable' }
];
var filteredProducts = [];

for (var i = 0; i < products.length; i++) {
  if (products[i].type === 'fruit') {
    filteredProducts.push(products[i]);
  }
}

console.log(filteredProducts);

+ES+6+

let products = [
  { name: 'banana', type: 'fruit' },
  { name: 'cucumber', type: 'vegetable' },
  { name: 'orange', type: 'fruit' },
  { name: 'celery', type: 'vegetable' }
];

filteredProducts = products.filter(function(product) {
  return product.type === 'fruit';
});

console.log(filteredProducts);

find

var users = [
  { name: 'Jill'},
  { name: 'Alex'},
  { name: 'Mark'}
];
var user;

for (var i = 0; i < users.length; i++) {
  if (users[i].name === 'Alex') {
    user = users[i];
    break;
  }
}

console.log(user);

+ES+6+

const users = [
  { name: 'Jill'},
  { name: 'Alex'},
  { name: 'Mark'}
];

let user = users.find((user) => {
  return user.name === 'Alex';
});

console.log(user);
function Car(model) {
  this.model = model;
}

const cars = [
  new Car('AAA'),
  new Car('BBB'),
  new Car('CCC')
];

let car = cars.find((car) => {
  return car.model === 'CCC';
});

console.log(car);

---
class Car {
  constructor(model) {
    this.model = model;
  }
}

const cars = [
  new Car('AAA'),
  new Car('BBB'),
  new Car('CCC')
];

let car = cars.find((car) => {
  return car.model === 'CCC';
});

console.log(car);
let posts = [
  {id: 1, title: 'New' },
  {id: 2, title: 'Old' },
];

let comment = { postId: 1, content: 'GGG'};

function postForComment(posts, comment) {
  return posts.find((post) => {
    return post.id === comment.postId;
  });
}

console.log(postForComment(posts, comment))
const ladders = [
  { id: 1, height: 20 },
  { id: 3, height: 25 }
];

function findWhere(array, criteria) {
  return array.find((el) => {
    return Object.keys(criteria).find((key) => {
      return el[key] === criteria[key]; 
    });
  });
}

console.log(findWhere(ladders, { height: 25 }));

every, some

var comps = [
  { name: 'AAA', ram: 24 },
  { name: 'BBB', ram: 4 },
  { name: 'CCC', ram: 32 }
];

var compAllCanRun = true;
var compSomeCanRun = false;

for (var i = 0; i < comps.length; i++) {
  var comp = comps[i];

  if (comp.ram > 16) {
    compAllCanRun = false;
  } else {
    compSomeCanRun = true;
  }
}

console.log(compAllCanRun);
console.log(compSomeCanRun);

+ES+6+

const comps = [
  { name: 'AAA', ram: 24 },
  { name: 'BBB', ram: 4 },
  { name: 'CCC', ram: 32 }
];

let compAllCanRun = comps.every((comp) => {
  return comp.ram > 16
});

let compSomeCanRun = comps.some((comp) => {
  return comp.ram > 16
});

console.log(compAllCanRun);
console.log(compSomeCanRun);
class FormField {
  constructor(value) {
    this.value = value;
  }
  validate() {
    return this.value.length > 0;
  }
}

let username = new FormField("user");
let password = new FormField("pass");
let birthday = new FormField("19xx/xx/xx");

const fields = [username, password, birthday];

let formIsValid = fields.every(field => {
  return field.validate();
});

console.log(formIsValid);

reduce

var numbers = [1, 2, 3];
var sum = 0;

for (var i = 0; i < numbers.length; i++) {
  sum += numbers[i];
}

console.log(sum);

+ES+6+

let numbers = [1, 2, 3];
let sum = 0;

sum = numbers.reduce((sum, number) => {
        return sum + number;
      }, 0);

console.log(sum);
let priColors = [
  { color: 'red'},
  { color: 'submarine'},
  { color: 'blue'}
];

colors = priColors.reduce((prev, priColor) => {
  prev.push(priColor.color);
  return prev;
}, []);

console.log(colors);
function balanced(str) {
  return !str.split("").reduce((prev, char) => {
    if (prev < 0) { return prev; }
    if (char === "(") { return ++prev; }
    if (char === ")") { return --prev; }
    return prev
  }, 0);
}

console.log(balanced("(()"));
console.log(balanced("(())"));
console.log(balanced("aaa(())"));
console.log(balanced(")("));
console.log(balanced("aaa))(())"));
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0