JavaScript Array 를 모 의 한 List
JavaScript 의 Array 대상 을 모 의 합 니 다.
주로 pust, pop. shift, foreach, concat, slice 등 방법 을 실현 하여 추 후 업데이트 합 니 다.
'use strict'
function List() {
this.length = 0;
if (arguments.length === 1) {
if (typeof(arguments[0]) === 'string') {
this[0] = arguments[0];
this.length++;
} else if (typeof(arguments[0]) === 'number') {
this.length = arguments[0];
}
} else {
for (var i = 0, len = arguments.length; i < len; i++) {
this[i] = arguments[i];
this.length++;
}
}
}
/**
* [push description]
* @return {[type]} [description]
*/
List.prototype.push = function() {
this.length++;
this[this.length - 1] = arguments[0];
return this;
}
/**
* [slice description]
* @return {[type]} [description]
*/
List.prototype.slice = function() {
var list = new List();
var start = arguments[0] || 0;
var end = arguments[1] || this.length;
for (var i = start; i < end; i++) {
list.push(this[i]);
}
return list;
}
/**
* [shift description]
* @return {[type]} [description]
*/
List.prototype.shift = function() {
var first = this[0];
delete this[0];
this.length--;
for (var key in this) {
if (!isNaN(key)) {
var v = this[key];
delete this[key];
var k = (parseInt(key, 10)) - 1;
this[k] = v;
}
}
return first;
}
/**
* [pop description]
* @return {[type]} [description]
*/
List.prototype.pop = function() {
var last = this[this.length - 1];
delete this[this.length - 1];
this.length--;
return last;
}
/**
* [concat description]
* @return {[type]} [description]
*/
List.prototype.concat = function() {
var target = arguments[0];
var _this = this;
var length = _this.length;
if (target instanceof List) {
for (var key in target) {
if (!isNaN(key)) {
_this[_this.length] = target[key];
_this.length++;
}
}
}
}
/**
* [reverse description]
* @return {[type]} [description]
*/
List.prototype.reverse = function() {
var list = new List();
for (var i = this.length - 1; i > -1; i--) {
list.push.call(list, this[i]);
}
return list;
}
/**
* [join description]
* @return {[type]} [description]
*/
List.prototype.join = function() {
var tag = (arguments.length > 0 ? arguments[0] : ',');
var str = '';
for (var i = 0, len = this.length; i < len; i++) {
str += this[i] + tag;
}
str = str.substring(0, str.length - 1);
return str.toString();
}
/**
* [forEach description]
* @param {Function} fn [description]
* @return {[type]} [description]
*/
List.prototype.forEach = function(fn) {
for (var i = 0, len = this.length; i < len; i++) {
fn(this[i]);
}
}
/**
* [toString description]
* @return {[type]} [description]
*/
List.prototype.toString = function() {
return this.join();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.