Dieser Artikel bietet Ihnen eine Einführung in häufig verwendete Array-Operationen (Codebeispiele). Ich hoffe, dass er für Freunde hilfreich ist.
In der täglichen Entwicklung ist die Front-End-Datenverarbeitung unverzichtbar. Hier werden wir die neue Array-API von ES6/ES7/ES8 klären.
Flaches n-dimensionales Array
Array.flat() -- ES10
-Methode durchläuft das Array rekursiv entsprechend einer spezifizierbaren Tiefe und durchläuft alle Elemente bis zu den Elementen in Die Subarrays werden zu einem neuen Array zusammengefasst und zurückgegeben. Array.flat(n) ist die API für flache Arrays. Wenn der n-Wert unendlich ist, entfernt die Methode „flat()“ leere Elemente im Array 🎜>
[1,[2,3]].flat(2) //[1,2,3] [1,[2,3,[4,5]].flat(3) //[1,2,3,4,5] [1,[2,3,[4,5]]].toString() //'1,2,3,4,5' [1,[2,3,[4,5],[...]]].flat(Infinity)
var arr4 = [1, 2, , 4, 5]; arr4.flat(); // [1, 2, 4, 5]
function flatten(arr) { while(arr.some(item=>Array.isArray(item))) { arr = [].concat(...arr); } return arr; } flatten([1,[2,3]]) //[1,2,3] flatten([1,[2,3,[4,5]]) //[1,2,3,4,5]
Array-Entüberlappung und ZusammenführungArray.from(new Set([1,2,3,3,4,4])) //[1,2,3,4] [...new Set([1,2,3,3,4,4])] //[1,2,3,4]Nach dem Login kopieren
Array.prototype.distinct = function(){ var arr = this, result = [], i, j, len = arr.length; for(i = 0; i < len; i++){ for(j = i + 1; j < len; j++){ if(arr[i] === arr[j]){ j = ++i; } } result.push(arr[i]); } return result; } [1,2,3,3,4,4].distinct(); //[1,2,3,4]
function combine(){ let arr = [].concat.apply([], arguments); //没有去重复的新数组 return Array.from(new Set(arr)); } var m = [1, 2, 2], n = [2,3,3]; console.log(combine(m,n));
[1,2,3,4].sort((a, b) => a - b); // [1, 2,3,4],默认是升序 [1,2,3,4].sort((a, b) => b - a); // [4,3,2,1] 降序
Array.prototype.bubleSort=function () { let arr=this, len = arr.length; for (let outer = len; outer >= 2; outer--) { for (let inner = 0; inner <= outer - 1; inner++) { if (arr[inner] > arr[inner + 1]) { //升序 [arr[inner], arr[inner + 1]] = [arr[inner + 1], arr[inner]]; //console.log([arr[inner], arr[inner + 1]]); } } } return arr; } [1,2,3,4].bubleSort(); //[1,2,3,4]
reduce ist die ES5-Array-API, und die Parameter umfassen eine Funktion und einen Standardanfangsbuchstaben value;
Die Funktion hat vier Parameter: pre(letzter Rückgabewert), cur(aktueller Wert), curIndex (aktueller Wertindex), arr (aktuelles Array)Ersetzungsschema: sum, Verwenden Sie Slice, um das Array abzufangen und zu ändern, und verwenden Sie dann die rekursive Summierung
SummenreduzierungMath.max(...[1,2,3,4]) //4 Math.max.apply(this,[1,2,3,4]) //4 [1,2,3,4].reduce( (prev, cur,curIndex,arr)=> { return Math.max(prev,cur); },0) //4Nach dem Login kopieren
[1,2,3,4].reduce(function (prev, cur) { return prev + cur; },0)
function sum(arr) { var len = arr.length; if(len == 0){ return 0; } else if (len == 1){ return arr[0]; } else { return arr[0] + sum(arr.slice(1)); } } sum([1,2,3,4]);
Ersatzplan:
[1,2,3,4].concat([5,6]) //[1,2,3,4,5,6] [...[1,2,3,4],...[4,5]] //[1,2,3,4,5,6] // 相当于 vegetables.push('celery', 'beetroot'); Array.prototype.push.apply( ['parsnip', 'potato'], ['celery', 'beetroot']); console.log(vegetables);
let arr=[1,2,3,4]; [5,6].map(item=>{ arr.push(item) }) //arr值为[1,2,3,4,5,6]
[1,2,3].includes(4)//false [1,2,3].indexOf(4) //-1 如果存在换回索引 [1, 2, 3].find((item)=>item===3) //3 如果数组中无值返回undefined [1, 2, 3].findIndex((item)=>item===3) //2 如果数组中无值返回-1
Array aufrufen können. from is Erstellen Sie ein Array-ähnliches oder iterierbares Objekt als Array
Die Slice()-Methode im Array-Objekt schneidet das Array aus, ohne das ursprüngliche Array zu bearbeiten, das als flache Kopie bezeichnet werden kann
[1,2,3].some(item=>{ return item===3 }) //true 如果不包含返回false
var a={ 0:"aa", 1:"cc", 2:"dd", length:3 } var callArr = Array.prototype.slice.call(a); var applyArr = Array.prototype.slice.apply(a) var fromArr = Array.from(a) console.log(a,callArr, applyArr, fromArr);
Array.prototype.slice = function(start,end){ var result = new Array(); start = start || 0; end = end || this.length; //this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键 for(var i = start; i < end; i++){ result.push(this[i]); } return result; }
[1,2,3].fill(1) [1,2,3].map(()=>0)
[1,2,3].every(item=>{return item>2})// false
[1,2,3].some (item=>{return item>2})// true
[1,2,3].filter(item=>{return item >=2 });
Object.keys({name:'张三',age:14}) //['name','age'] Object.values({name:'张三',age:14}) //['张三',14] Object.entries({name:'张三',age:14}) //[[name,'张三'],[age,14]] Object.fromEntries([name,'张三'],[age,14]) //ES10的api,Chrome不支持 , firebox输出{name:'张三',age:14}
JavaScript-Video-Tutorial
]Das obige ist der detaillierte Inhalt vonEinführung in gängige Array-Operationen in JavaScript (Codebeispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!