フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

ES6を利用する上でよく利用するメソッドの使用例②

everyまたはsomeメソッド

everyメソッド (&&条件)

var users = [
  { id: 21, hasSubmitted: true },
  { id: 62, hasSubmitted: false },
  { id: 4, hasSubmitted: true }
];

var hasSubmitted;

users.every(function (user){
  return user.hasSubmitted
})

someメソッド (||条件)

var requests = [
  { url: '/photos', status: 'complete' },
  { url: '/albums', status: 'pending' },
  { url: '/users', status: 'failed' }
];

var inProgress;

inProgress = requests.some(function(request){
  return request.status == 'pending';
});

reduceメソッド

Case1

var trips = [{ distance: 34 }, { distance: 12 } , { distance: 1 }];

var totalDistance;

trips.reduce(function(totalDistance, trip){
  return totalDistance + trip.distance
} ,0);

Case2

var desks = [
  { type: 'sitting' },
  { type: 'standing' },
  { type: 'sitting'},
  { type: 'sitting' },
  { type: 'standing' }
];

var deskTypes = desks.reduce(function(obj,desk) {
  if (desk.type == "sitting"){
   ++obj.sitting; 
  }else{
   ++obj.standing;
  }  
  return obj;
}, { sitting: 0, standing: 0 });

deskTypes

Case3

const numbers = [1,1,2,3,4,4];


function unique(array) {
  return array.reduce(function(acc, element) {
    var existingElement = acc.find(function(target) {
      return target === element;
    });
 
    console.log(existingElement)
    if (!existingElement) {
      acc.push(element); 
    }
        
    return acc;
  }, []);
}

unique(numbers);

Constとletの使い分け

Case1

const name = "つよし";
let age = 42;
const dateOfBirth = '1977-09-19'; 

Case2

const statuses = [ 
  { code: 'OK', response: '正常に完了しました' },
  { code: 'FAILED', response: 'エラーが発生しました' },
  { code: 'PENDING', response: '処理中です...' }
];
let message = '';
let currentCode = 'OK';

for (let i = 0; i < statuses.length; i++) {
  if (statuses[i].code === currentCode) {
    message = statuses[i].response;
  }
}
message;
currentCode

テンプレートリテラル

Case1

function doubleMessage(number) {
  return `${number}を2倍すると${(2 * number)}になります`;
}

doubleMessage(20)

Case2

function fullName(firstName, lastName) {
  return `${firstName} ${lastName}`;
}


fullName("Morita","Tsuyoshi")