Algorithm
How to replace text inside a string?
var str = 'a b c'; var replaced = str.split(' ').join('+');
How to merge 2 objects?
const response = { lat: -51.3303, lng: 0.39440 } const item = { id: 'qwenhee-9763ae-lenfya', address: '14-22 Elder St, London, E1 6BT, UK' } const newItem = Object.assign({}, item, { location: response });
How to update value of a specific field?
let players = { abcdef: true, ghijkl: true, // I want to change to 'ghijkl: false' mnopqr: true } const keys = Object.keys(players) let players = ...(keys.reduce((carry, key) => { if ('ghijkl' !== key) { carry[key] = state.players[key] } return carry }, {})), /* { abcdef: true, mnopqr: true }*/ players = { ...players, ghijkl: false }
How to remove duplicates from array of objects?
var test = [ {id:1, PlaceRef: "*00011", Component: "BATH", SubLocCode: "BAT", BarCode: ""}, {id:2, PlaceRef: "*00022", Component: "BAXI10R", SubLocCode: "KIT", BarCode:""}, {id:1, PlaceRef: "*00011", Component: "BATH", SubLocCode: "BAT", BarCode: ""}, {id:3, PlaceRef: "*00011", Component: "ANR190", SubLocCode: "B1", BarCode: ""}] // Create Set of unique items var arrUniqId = [...new Set(test.map(({id}) => id))] // 1, 2, 3 var uniq = arrUniqId.map(e => test.find(({id}) => id == e)); console.log(uniq)
How to merge 2 arrays without duplicated items?
For example, merge following 2 arrays without duplicated ID
var arrayOne = [ { 'ID': 1, 'FirstName': 'Sally' }, { 'ID': 2, 'FirstName': 'Jim' }, { 'ID': 3, 'FirstName': 'Bob' } ]; var arrayTwo = [ { 'ID': 2, 'FirstName': 'Jim' }, { 'ID': 4, 'FirstName': 'Tom' }, { 'ID': 5, 'FirstName': 'George' } ];
Solution
Create a Set of ID first
var ids = new Set(arrayOne.map(d => d.ID));
Then merge 2 arrays and check duplicated ID
var mergedArray = [...arrayOne, ...arrayTwo.filter(d => !ids.has(d.ID))];
How to filter an array by another array?
const dataArray = [ { id: 1, value: 'hi' }, { id: 2, value: 'hii' }, { id: 3, value: 'hiii' }, { id: 4, value: 'hiiii' }, ] const filterArray = [1, 4] const filterResult = [ { id: 1, value: 'hi' }, { id: 4, value: 'hiiii' }, ]
Solution
const filterResult = dataArray.filter((item) => { const id = item.id // 1, 2, 3, 4 return filterArray.indexOf(id) >= 0 // "this" is "filterArray" })
How to convert data by reduce?
// Convert array to object const obj = arrData.reduce((objNewData, element) => { if (!objNewData[element.ACertainProperty]) { objNewData[element.ACertainProperty] = [] } objNewData[element.ACertainProperty].push(element) return objNewData }, {}) /* arrData = [ { name: 'aaaa', age: 18 }, { name: 'aaaa', age: 20 }, { name: 'bbbb', age: 16 }, ] obj = { 'aaaa': [ { name: 'aaaa', age: 18 }, { name: 'aaaa', age: 20 }, ], 'bbbb': [ { name: 'bbbb', age: 16 } ] } */
How to convert object to array?
TRANSFER { "teacher_1": [ { name: 'AAAA', class: '10A1' }, { name: 'BBBB', class: '10A2' }, { name: 'CCCC', class: '10A3' }, ], "teacher_2": [ { name: 'DDDD', class: '10A4' }, { name: 'BBBB', class: '10A2' }, { name: 'CCCC', class: '10A3' }, ], } TO [ { name: 'AAAA', class: '10A1' teacher: ["teacher_1"] }, { name: 'BBBB', class: '10A2' teacher: ["teacher_1", "teacher_2"] }, { name: 'CCCC', class: '10A3' teacher: ["teacher_1", "teacher_2"] }, { name: 'DDDD', class: '10A4' teacher: ["teacher_2"] } ]
Leave a Reply