By Kapil Raghuwanshi

Translator: front end little wise

Source: dev

Have a dream, have dry goods, WeChat search [big move world] keep an eye on this washing dishes in the wee hours of the morning.

This paper making https://github.com/qq449245884/xiaozhi has included, has a complete line companies interview examination site, information, and my series of articles.

Use convenient and useful methods to reduce the number of lines of code, improve our work efficiency, increase our fishing time.

In our daily tasks, we need to write functions such as sorting, searching, finding unique values, passing parameters, swapping values, etc. So here are a few common techniques and methods that I have collected from my work over the years to increase the amount of time you spend looking for fish.

• Reduce lines of code
• Coding Competitions
• Increase fishing time

### 1. Declare and initialize arrays

We can initialize an array with a specified size, or we can initialize the contents of an array with a specified value. We may use a set of arrays, but we can do the same with a two-dimensional array, as shown below:

``const array = Array(5).fill(''); / / output (5) (" ", ""," ", ""," "] const matrix = Array (5). The fill (0). The map (() = > Array (5). The fill (0)) / / output (5) [Array (5), Array(5), Array(5), Array(5), Array(5)] 0: (5) [0, 0, 0, 0, 0] 1: (5) [0, 0, 0, 0, 0] 2: (5) [0, 0, 0, 0, 0] 3: (5) [0, 0, 0, 0, 0] 4: (5) [0, 0, 0, 0, 0] length: 5``

### 2. Sum, minimum and maximum

We should use the Reduce method to quickly find basic mathematical operations.

``Const array =,4,7,8,9,2 [5];``

sum

``array.reduce((a,b) => a+b); // Output: 35``

The maximum

``array.reduce((a,b) => a>b? a:b); // Output: 9``

The minimum value

``array.reduce((a,b) => a<b? a:b); // Output: 2``

### 3. Sort arrays of strings, numbers, or objects

We have built-in methods sort() and reverse() to sort strings, but what about numbers or arrays of objects

String array sorting

``const stringArr = ["Joe", "Kapil", "Steve", "Musk"] stringArr.sort(); / / output (4) [" Joe ", "Kapil", "Musk", "Steve"] stringArr. The reverse (); // Output (4) ["Steve", "Musk", "Kapil", "Joe"]``

Numeric array sorting

``const array = [40, 100, 1, 5, 25, 10]; array.sort((a,b) => a-b); / / output (6) [1, 5, 10, 25, 40, 100] array. The sort ((a, b) = > b - a); // Output (6) [100, 40, 25, 10, 5, 1]``

Object array sorting

``const objectArr = [ { first_name: 'Lazslo', last_name: 'Jamf' }, { first_name: 'Pig', last_name: 'Bodine' }, { first_name: 'Pirate', last_name: 'Prentice' } ]; objectArr.sort((a, b) => a.last_name.localeCompare(b.last_name)); / / output (3) [{...}, {...}, {...}] 0: {first_name: "Pig", last_name: "Bodine"} 1: {first_name: "Lazslo", last_name: "Jamf"} 2: {first_name: "Pirate", last_name: "Prentice"} length: 3``

#### 4. Filter from array to virtual value

False values such as 0, undefined, null, false, “”, “” can be easily filtered out with the following tricks.

``const array = [3, 0, 6, 7, '', false]; array.filter(Boolean); // Output (3) [3, 6, 7]``

### 5. Use logical operators to handle situations that require conditional decisions

``function doSomething(arg1){ arg1 = arg1 || 10; // If arg1 has no value, take the default value 10} let foo = 10; foo === 10 && doSomething(); // If foo is equal to 10, doSomething() is just executed; / / output: 10 foo = = = 5 | | doSomething (); // is the same thing as if (foo ! = 5) then doSomething(); // Output: 10``

### 6. Remove duplicate values

``Const array =,4,7,8,9,2,7,5 [5]; array.filter((item,idx,arr) => arr.indexOf(item) === idx); // or const nonUnique = [...new Set(array)]; // Output: [5, 4, 7, 8, 9, 2]``

### 7. Create a counter object or Map

In most cases, you can create an object or Map to count the frequency of certain words.

``let string = 'kapilalipak'; const table={}; for(let char of string) { table[char]=table[char]+1 || 1; } // output {k: 2, a: 3, p: 2, I: 2, l: 2}``

or

``const countMap = new Map(); for (let i = 0; i < string.length; i++) { if (countMap.has(string[i])) { countMap.set(string[i], countMap.get(string[i]) + 1); } else { countMap.set(string[i], 1); {}} / / output Map (5) "k" = > 2, "a" = > 3, "p" = > 2, "I" = > 2, "l" = > 2}``

### Ternary operators are cool

``function Fever(temp) { return temp > 97 ? 'Visit Doctor! ' : temp < 97 ? 'Go Out and Play!! ' : temp === 97 ? 'Take Some Rest! ': 'Go Out and Play! ';; } // Output Fever(97): "Take Some Rest!" Fever(100): "Visit Doctor!"``

### 9. Comparison of cyclic methods

• `for``for.. in`Get the index by default, but you can use it`arr[index]`.
• `for.. in`Non-numbers are also accepted, so avoid them.
• `forEach`.`for... of`You just get the element.
• Foreach can also get indexed, but`for... of`I can’t.

### 10. Merge two objects

``const user = { name: 'Kapil Raghuwanshi', gender: 'Male' }; const college = { primary: 'Mani Primary School', secondary: 'Lass Secondary School' }; const skills = { programming: 'Extreme', swimming: 'Average', sleeping: 'Pro' }; const summary = {... user, ... college, ... skills}; // merge multiple objects gender: "Male" name: "Kapil Raghuwanshi" primary: "Mani Primary School" programming: "Extreme" secondary: "Lass Secondary School" sleeping: "Pro" swimming: "Average"``

### 11. Arrow function

Arrow function expressions are an alternative to traditional function expressions, but they are limited and cannot be used in all cases. Because they have lexical scopes (parent scopes) and do not have their own this and argument, they refer to the context in which they are defined.

``const person = { name: 'Kapil', sayName() { return this.name; } } person.sayName(); / / output Kapil ""``

But this:

``````const person = {
name: 'Kapil',
sayName : () => {
return this.name;
}
}
person.sayName();
// Output
"``````

### 13. Optional chain

``const user = { employee: { name: "Kapil" } }; user.employee? .name; // Output: "Kapil" user.employ? .name; // Output: undefined user.develop. name // Output: VM21616:1 Uncaught TypeError: Cannot read property 'name' of undefined``

### 13. Shuffle an array

Use the built-in Math.random() method.

``const list = [1, 2, 3, 4, 5, 6, 7, 8, 9]; List.sort (() => {return Math.random() -0.5; }); / / output (9) [2, 5, 1, 6, 9, 8, 4, 3, 7] / / output (9) [4, 1, 7, 5, 3, 8, 2, 9, 6]``

### 14. Double-question mark syntax

``const foo = null ?? 'my school'; // Output: "my school" const baz = 0?? 42. // Output: 0``

### Residual and expansion syntax

``function myFun(a, b, ... manyMoreArgs) { return arguments.length; } myFun("one", "two", "three", "four", "five", "six"); // Output: 6``

and

``const parts = ['shoulders', 'knees']; const lyrics = ['head', ...parts, 'and', 'toes']; lyrics; / / output: (5) [" head ", "shoulders", "knees", "and", "toes"]``

### 16. Default parameters

``const search = (arr, low=0,high=arr.length-1) => { return high; } the search ([1, 2, 3, 4, 5]); // Output: 4``

### Convert decimal to binary or hexadecimal

``const num = 10; num.toString(2); // Output: "1010" num. ToString (16); // Output: "a" num. ToString (8); // output "12"``

### 18. Use deconstruction to swap two numbers

``let a = 5; let b = 8; [a,b] = [b,a] [a,b] // Output (2) [8, 5]``

### 19. Single line palindrome check

``function checkPalindrome(str) { return str == str.split('').reverse().join(''); } checkPalindrome('naman'); // Output: true``

### 20. Convert the Object property to an array of properties

``````const obj = { a: 1, b: 2, c: 3 };

Object.entries(obj);
// Output
(3) [Array(2), Array(2), Array(2)]
0: (2) ["a", 1]
1: (2) ["b", 2]
2: (2) ["c", 3]
length: 3

Object.keys(obj);
(3) ["a", "b", "c"]

Object.values(obj);
(3) [1, 2, 3]``````

~ over, I am small wisdom, we see you next time!

Original: https://dev.to/techygeeky/top…

## communication

Article continuously updated every week, you can search the first big move world 】 【 WeChat time reading, reply [welfare] how a front-end video, waiting for you, in this paper, making https://github.com/qq449245884/xiaozhi has included, welcome Star.