JavaScript의 TypedArrays에 대한 몇 가지 사용자 지정 서면 프로토타입 메서드
12910 단어 prototypingjavascriptadvanced
// In case I'd add new features :
// @https://codepen.io/projektorius96/pen/xxdvqpZ
// ===
// SYNOPSIS [].purify() :
let arr1 = ["4", 5, undefined, null, ""]; // concrete practical example
Array.prototype.purify = function(){
for (let index = 0; index < /* arr1 */this.length; index++){
for (let nonExsisting of [undefined, null, ""]) {
if (/* arr1 */this[index] == nonExsisting) { /* arr1 */this[index] = "0"; /* console.log(' converted to "0" successfully ') */ }
else { /* console.log(' item was already typeof "string" ') */ };
}
}
for (let item in /* arr1 */this) { if(typeof /* arr1 */this[item] != "string") {/* arr1 */this[item] = /* arr1 */this[item].toString(); console.log("value stringified: ", ) } }
return this;
}
let res = arr1.purify();
console.log(res);
// ===
// SYNOPSIS [].deleteItems(/* atPos, end, included = false | if true - end will be included */) :
let months = ['Jan', 'March', 'April', 'June'];
let variousTypes = ["4", 5, undefined, null, ""];
Array.prototype.deleteItems = function(atPos, end, included = false){
for (let pointer = 0; pointer < this.length ; pointer++) {
// console.log("BEFORE IF: ", pointer, atPos, end)
if (included) {
if (pointer == atPos && atPos <= end) {
// console.log("before delete & increment: ", pointer, atPos, end)
delete this[pointer];
atPos++; // 1
// console.log("after delete & increment: ", pointer, atPos , end);
}
// break; [this was a culprit so commented out]
}
else {
if (pointer == atPos && atPos < end) {
// console.log("before delete & increment: ", pointer, atPos, end)
delete this[pointer];
atPos++; // 1
// console.log("after delete & increment: ", pointer, atPos , end);
}
}
}
return this;
}
variousTypes.deleteItems(0, 2)
console.log("(end) not included", variousTypes);
variousTypes = ["4", 5, undefined, null, ""]; // restore variousTypes for another try ;
// IMPORTANT NOTICE : even without restoring variousTypes <empty> indices will be iterated over whatsoever i.e. not ignored by pointer
variousTypes.deleteItems(0, 2, true);
console.log("(end) is included", variousTypes);
months.deleteItems(0,2);
console.log("months after deletion: ", months); // months after deletion: (4) [empty × 2, "April", "June"]
months = ['Jan', 'March', 'April', 'June']; // restore values to (4) ["Jan", "March", "April", "June"] for another try ;
months.deleteItems(0,2, true); // (4) [empty × 3, "June"]
// p.s. I left my comments at some point as someone may find it helpful whilst examining each prototype
각 Augment Array.prototype에서 키워드
this
는 실제 1차원 배열로 대체되어야 합니다. n번째 다차원 배열이 있는 경우 먼저 기본 제공.flat() 및 제공된 사용자 지정 프로토타입 메서드를 적용할 때만 디플랫되도록 만듭니다.누군가 도움이 되기를 바랍니다. 감사합니다. 다음 글에서 뵙겠습니다!
Reference
이 문제에 관하여(JavaScript의 TypedArrays에 대한 몇 가지 사용자 지정 서면 프로토타입 메서드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/projektorius96/couple-of-custom-written-prototype-methods-for-typedarrays-in-javascript-21ff텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)