Summary of methods for operating arrays in js (code)
What this article brings to you is a summary (code) of methods for operating arrays in js. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
1. Find the position of the element item in the given array arr
function indexOf(arr, item) { if (Array.prototype.indexOf){ //判断原型中是否支持该方法 return arr.indexOf(item); } else { for (var i = 0; i < arr.length; i++){ if (arr[i] === item){ return i; } } } return -1; }
2. Calculate the sum of all elements in the given array arr
//forEach遍历: function sum(arr) { var s = 0; arr.forEach(function(val, idx, arr) { s += val; }, 0); return s; }; //eval: function sum(arr) { return eval(arr.join("+")); };
3. Remove all elements in the array arr whose values are equal to item. Do not modify the array arr directly. The result will be a new array
//splice() function remove(arr,item){ var newarr = arr.slice(0); for(var i=0;i<newarr.length;i++){ if(newarr[i] == item){ newarr.splice(i,1); i--; } } return newarr; }//push() function remove(arr,item){ var newarr = []; for(var i=0;i<arr.length;i++){ if(arr[i] != item){ newarr.push(arr[i]); } } return newarr; }//Array.prototype.filter() function remove(arr,item){ return arr.filter(function(ele){ return ele != item; }) }
4. Remove all elements in the array arr whose values are equal to item and operate directly on the given arr array. , and return the result
//splice function removeWithoutCopy(arr, item) { for(var i=0; i<arr.length; i++) { if(item == arr[i]) { arr.splice(i,1); i--; } } return arr; }//while function removeWithoutCopy(arr, item) { for(var i in arr){ while(arr[i]==item){ arr.splice(i,1); } } return arr; }
5. Add the element item at the end of the array arr. Do not modify the array arr directly. The result will be a new array
//普通的迭代拷贝 var append = function(arr, item) { var length = arr.length, newArr = []; for (var i = 0; i < length; i++) { newArr.push(arr[i]); } newArr.push(item); return newArr; };//使用slice浅拷贝+push组合 function append(arr, item) { var newArr=arr.slice(0); newArr.push(item); return newArr; }
6. Delete the last element of the array arr. Do not modify the array arr directly, the result will be a new array
//利用slice function truncate(arr) { return arr.slice(0,-1); } //利用filter function truncate(arr) { return arr.filter(function(v,i,ar) { return i!==ar.length-1; }); } //利用push.apply+pop function truncate(arr) { var newArr=[]; [].push.apply(newArr, arr); newArr.pop(); return newArr; } //利用join+split+pop 注意!!!:数据类型会变成字符型 function truncate(arr) { var newArr = arr.join().split(','); newArr.pop(); return newArr; }
7. Add the element item at the beginning of the array arr. Do not modify the array arr directly. The result will be a new array
//利用concat function prepend(arr, item) { return [item].concat(arr); } //使用push.apply function prepend(arr, item) { var newArr=[item]; [].push.apply(newArr, arr); return newArr; } //利用slice+unshift/splice function prepend(arr, item) { var newArr=arr.slice(0); newArr.unshift(item);//newArr.splice(0,0,item); return newArr; }
8. Delete the first element of the array arr. Do not modify the array arr directly, the result will be a new array
//利用slice function curtail(arr) { return arr.slice(1); } //利用filter function curtail(arr) { return arr.filter(function(v,i) { return i!==0; }); } //利用push.apply+shift function curtail(arr) { var newArr=[]; [].push.apply(newArr, arr); newArr.shift(); return newArr; }
9. Merge array arr1 and array arr2. Do not modify the array arr directly. The result will be a new array
//利用concat function concat(arr1, arr2) { return arr1.concat(arr2); } //利用slice+push.apply function concat(arr1, arr2) { var newArr=arr1.slice(0); [].push.apply(newArr, arr2); return newArr; } //利用slice+push function concat(arr1, arr2) { var newArr=arr1.slice(0); for(var i=0;i<arr2.length;i++){ newArr.push(arr2[i]); } return newArr; }
10. Add the element item at the index of the array arr. Do not modify the array arr directly, the result will be returned as a new array
//利用slice+splicefunction insert(arr, item, index) { var newArr=arr.slice(0); newArr.splice(index,0,item); return newArr; }//利用push.apply+splicefunction insert(arr, item, index) { var newArr=[]; [].push.apply(newArr, arr); newArr.splice(index,0,item); return newArr; }
11. Count the number of occurrences of elements in the array arr whose value is equal to item
//filter()-->利用指定的函数确定是否在返回的数组中包含某一项 function count(arr, item) { var count = arr.filter(function(a) { return a === item; //返回true的项组成的数组 }); return count.length; } //map()-->对数组中的每一项进行给定函数, //返回每次函数条用的结果组成的数组; function count(arr, item) { var count = 0; arr.map(function(a) { if(a === item) { count++; } }); return count; }//forEach()-->对数组中的每一项运行传入的函数 function count(arr, item) { var count = 0; arr.forEach(function(a) { a === item ? count++ : 0; }); return count; }
12. Find the repeated elements in the array arr
//两次遍历 function duplicates(arr) { //声明两个数组,a数组用来存放结果,b数组用来存放arr中每个元素的个数 var a = [],b = []; //遍历arr,如果以arr中元素为下标的的b元素已存在,则该b元素加1,否则设置为1 for(var i = 0; i < arr.length; i++){ if(!b[arr[i]]){ b[arr[i]] = 1; continue; } b[arr[i]]++; } //遍历b数组,将其中元素值大于1的元素下标存入a数组中 for(var i = 0; i < b.length; i++){ if(b[i] > 1){ a.push(i); } } return a; } //先排序,如果后一个与前一个相等且未保存,则保存。 function duplicates(arr) { var a=arr.sort(),b=[]; for(var i in a){ if(a[i]==a[i-1] && b.indexOf(a[i])==-1) b.push(a[i]); } return b; } //先排序然后再判断function duplicates(arr) { var new_arr = arr.sort();//先把arr排序 var res = [] ;//目标容器 for( var i = 0 ; i < new_arr.length ; i++){ if(new_arr[i] == new_arr[i+1] && new_arr[i] !=new_arr[i-1]){//判断是否重复,是否已经放入容器 res.push(new_arr[i]); } } return res;
13. Find the second power of each element in the array arr. Do not modify the array arr directly, the result will be a new array
function square(arr) { //声明一个新的数组存放结果 var a = []; arr.forEach(function(e){ //将arr中的每一个元素求平方后,加入到a数组中 a.push(e*e); }); return a; } // 使用map function square(arr) { return arr.map(function(e) { return e * e; }) } // ES6箭头函数版 const square = arr => arr.map(e => e * e);
14. In the array arr, find all positions where the element whose value is equal to item appears
//forEach function findAllOccurrences(arr, target) { var a=[]; arr.forEach(function(e,index){ if(e==target) a.push(index); }) return a; } function findAllOccurrences(arr, target) { var temp = []; arr.forEach(function(val,index){ val !== target || temp.push(index); }); return temp; }//filter function findAllOccurrences(arr, target) { var result=[]; arr.filter(function(item,index){ return item===target&&result.push(index); }); return result; }
Related recommendations:
Summary of js array operation methods (must read)
Explain the basic methods of Js array operation
The above is the detailed content of Summary of methods for operating arrays in js (code). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



The method of using a foreach loop to remove duplicate elements from a PHP array is as follows: traverse the array, and if the element already exists and the current position is not the first occurrence, delete it. For example, if there are duplicate records in the database query results, you can use this method to remove them and obtain results without duplicate records.

Methods for deep copying arrays in PHP include: JSON encoding and decoding using json_decode and json_encode. Use array_map and clone to make deep copies of keys and values. Use serialize and unserialize for serialization and deserialization.

The performance comparison of PHP array key value flipping methods shows that the array_flip() function performs better than the for loop in large arrays (more than 1 million elements) and takes less time. The for loop method of manually flipping key values takes a relatively long time.

The best practice for performing an array deep copy in PHP is to use json_decode(json_encode($arr)) to convert the array to a JSON string and then convert it back to an array. Use unserialize(serialize($arr)) to serialize the array to a string and then deserialize it to a new array. Use the RecursiveIteratorIterator to recursively traverse multidimensional arrays.

PHP's array_group_by function can group elements in an array based on keys or closure functions, returning an associative array where the key is the group name and the value is an array of elements belonging to the group.

Multidimensional array sorting can be divided into single column sorting and nested sorting. Single column sorting can use the array_multisort() function to sort by columns; nested sorting requires a recursive function to traverse the array and sort it. Practical cases include sorting by product name and compound sorting by sales volume and price.

The PHP array merging and deduplication algorithm provides a parallel solution, dividing the original array into small blocks for parallel processing, and the main process merges the results of the blocks to deduplicate. Algorithmic steps: Split the original array into equally allocated small blocks. Process each block for deduplication in parallel. Merge block results and deduplicate again.

PHP's array_group() function can be used to group an array by a specified key to find duplicate elements. This function works through the following steps: Use key_callback to specify the grouping key. Optionally use value_callback to determine grouping values. Count grouped elements and identify duplicates. Therefore, the array_group() function is very useful for finding and processing duplicate elements.
