이 기사에서는 개발 중에 일반적으로 사용되는 js 메소드 캡슐화에 대해 소개합니다. 이는 특정 참고 가치가 있으므로 도움이 될 수 있습니다.
1. 배열인지 확인
function isArray(arr){ return Object.prototype.toString.call(arr) ==='[object Array]'; } isArray([1,2,3]) //true
2. 함수인지 확인(3가지 유형)
function isFunction(fn) { return Object.prototype.toString.call(fn) ==='[object Function]'; return fn.constructor == Function; return fn instanceof Function; return typeof (fn) == Function; }
3. 배열의 요소가 숫자인지 문자열인지만 고려하세요.
function newarr(arr){ var arrs = []; for(var i =0;i<arr.length;i++){ if(arrs.indexOf(arr[i])== -1){ arrs.push(arr[i]) } } return arrs; }
4. 동적 중복 제거
var arr = [1,2, 3, 4]; function add() { var newarr = []; $('.addEle').click(() => { var rnd = Math.ceil(Math.random() * 10); newarr.push(rnd) for (var i =0; i < newarr.length; i++) { if (arr.indexOf(newarr[i]) == -1) { arr.push(newarr[i]) arr.sort(function (a, b) { return b - a //降序 }); } } console.log(arr)//[1,2,3,4,5,6,7,8,9] }) } add()
5. 문자열 공백 제거(3가지 상황 포함)
function trim(str) { return str.replace(/^[" "||" "]*/,"").replace(/[" "|" "]*$/,"");// 去除头和尾 return str.replace(/\s/g,'');//去除所有空格 return str.replace(/(\s*$)/g,"");//去除右边所有空格 }
6. 이메일 주소인지 확인합니다. 휴대폰 번호
function isEmail(emailStr) { var reg = /^[a-zA-Z0-9]+([._-]*[a-zA-Z0-9]*)*@[a-zA-Z0-9]+.[a-zA-Z0-9{2,5}$]/; var result = reg.test(emailStr); if (result) { alert("ok"); } else { alert("error"); } }
8 개체의 첫 번째 요소 번호를 가져옵니다
function isMobilePhone(phone) { var reg = /^1\d{10}$/; if (reg.test(phone)) { alert('ok'); } else { alert('error'); } }
9. 브라우저 창을 기준으로 요소의 위치를 가져오고 {x,y} 개체를 반환합니다
function getObjectLength(obj){ var i=0; for( var attrin obj){ if(obj.hasOwnProperty(attr)){ i++; } } console.log(i); } var obj = {name:'kob',age:20}; getObjectLength(obj) //2.
10. 특정 문자열에 문자가 나타나는 횟수
function getPosition(element) { var offsety = 0; offsety += element.offsetTop; var offsetx = 0; offsetx += element.offsetLeft; if (element.offsetParent != null) { getPosition(element.offsetParent); } return { Left: offsetx, Top: offsety }; }
11. 배열에서 가장 많이 나타나는 요소를 계산합니다.
var str = 'To be, or not to be, that is the question.'; var count = 0; var pos = str.indexOf('e'); while (pos !== -1) { count++; pos = str.indexOf('e', pos + 1); } console.log(count) //4
12. 배열 필터(검색 기능)
var arrayObj = [1,1, 2, 3, 3, 3,4, 5, 5]; var tepm = '',count =0; var newarr = new Array(); for(var i=0;i<arrayObj.length;i++){ if (arrayObj[i] != -1) { temp = arrayObj[i]; } for(var j=0;j<arrayObj.length;j++){ if (temp == arrayObj[j]) { count++; arrayObj[j] = -1; } } newarr.push(temp + ":" + count); count = 0; } for(var i=0;i<newarr.length;i++){ console.log(newarr[i]); }
13. 객체 복사(첫 번째 유형) )
var fruits = ['apple','banana', 'grapes','mango', 'orange']; function filterItems(query) { return fruits.filter(function(el) { return el.toLowerCase().indexOf(query.toLowerCase()) > -1; }) } console.log(filterItems('ap')); // ['apple', 'grapes']
14. 심층 복제
//第一种 var cloneObj =function(obj) { var newObj = {}; if (obj instanceof Array) { newObj = []; } for (var keyin obj) { var val = obj[key]; newObj[key] = typeof val === 'object' ? cloneObj(val) : val; } return newObj; }; //第二种 function clone(origin , target){ var target = target || {}; for(var propin origin){ target[prop] = origin[prop]; } return target; }
15. json 배열 제거
var newObj ={}; function deepClone(origin,target){ var target = target || {}, toStr = Object.prototype.toString, arrStr = "[object Array]"; for(var propin origin){ if(origin.hasOwnProperty(prop)){ if(origin[prop] != "null" && typeof(origin[prop]) == 'object'){//判断原型链 target[prop] = (toStr.call(origin[prop]) == arrStr) ? [] : {}//判断obj的key是否是数组 deepClone(origin[prop],target[prop]);//递归的方式 }else{ target[prop] = origin[prop]; } } } return target } deepClone(obj,newObj); console.log(newObj)
16. Array.prototype.max = function(){
return Math.max.apply({},this)
}
Array.prototype.min = function(){
return Math.min.apply({},this)
}
console.log([1,5,2].max())
function UniquePay(paylist){
var payArr = [paylist[0]];
for(var i =1; i < paylist.length; i++){
var payItem = paylist[i];
var repeat = false;
for (var j =0; j < payArr.length; j++) {
if (payItem.name == payArr[j].name) {
repeat = true;
break;
}
}
if (!repeat) {
payArr.push(payItem);
}
}
return payArr;
}
Array.intersect = function () {
var result = new Array();
var obj = {};
for (var i =0; i < arguments.length; i++) {
for (var j =0; j < arguments[i].length; j++) {
var str = arguments[i][j];
if (!obj[str]) {
obj[str] = 1;
}
else {
obj[str]++;
if (obj[str] == arguments.length)
{
result.push(str);
}
}//end else
}//end for j
}//end for i
return result;
}
console.log(Array.intersect(["1","2", "3"], ["2","3", "4", "5", "6"]))
var arr = ['F00006','F00007','F00008'];
var obj = {'F00006':[{'id':21}],'F00007':[{'id':11}]}
var newobj = {};
for(var itemin obj){
if(arr.includes(item)){
newobj[item] = obj[item]
}
}
console.log(newObj)
//第一种
Array.prototype.remove = function(val){
var index = this.indexOf(val);
if(index !=0){
this.splice(index,1)
}
}
[1,3,4].remove(3)
//第二种
function remove(arr, indx) {
for (var i =0; i < arr.length; i++) {
var index = arr.indexOf(arr[i]);
if (indx == index) {
arr.splice(index, 1)
}
}
return arr
}
요약: 위는 이 기사의 전체 내용이 모든 사람의 연구에 도움이 되기를 바랍니다. 더 많은 관련 튜토리얼을 보려면
을 방문하세요! 관련 권장 사항:
JavaScript 그래픽 튜토리얼 JavaScript 온라인 매뉴얼위 내용은 개발 중에 일반적으로 사용되는 js 메서드 캡슐화(요약)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本站4月17日消息,集邦咨询(TrendForce)近日发布报告,认为英伟达Blackwell新平台产品需求看涨,预估带动台积电2024年CoWoS封装总产能提升逾150%。英伟达Blackwell新平台产品包括B系列的GPU,以及整合英伟达自家GraceArmCPU的GB200加速卡等。集邦咨询确认为供应链当前非常看好GB200,预估2025年出货量有望超过百万片,在英伟达高端GPU中的占比达到40-50%。在英伟达计划下半年交付GB200以及B100等产品,但上游晶圆封装方面须进一步采用更复

本站7月9日消息,AMDZen5架构“Strix”系列处理器会有两种封装方案,其中较小的StrixPoint将采用FP8封装,而StrixHalo将会采用FP11封装。图源:videocardz消息源@Olrak29_最新曝料称StrixHalo的FP11封装尺寸为37.5mm*45mm(1687平方毫米),和英特尔AlderLake、RaptorLakeCPU的LGA-1700封装尺寸相同。AMD最新的PhoenixAPU采用FP8封装方案,尺寸为25*40mm,这意味着StrixHalo的F

通过封装代码,C++函数可以提高GUI开发效率:代码封装:函数将代码分组到独立单元,使代码易于理解和维护。可重用性:函数可创建通用功能供应用程序中重复使用,减少重复编写和错误。简洁代码:封装代码使主逻辑简洁,便于阅读和调试。

PHP中的封装技术及应用封装是面向对象编程中的一个重要概念,它指的是将数据和对数据的操作封装在一起,以便提供对外部程序的统一访问接口。在PHP中,封装可以通过访问控制修饰符和类的定义来实现。本文将介绍PHP中的封装技术及其应用场景,并提供一些具体的代码示例。一、封装的访问控制修饰符在PHP中,封装主要通过访问控制修饰符来实现。PHP提供了三个访问控制修饰符,

Vue中Axios封装及其常用方法介绍Axios是一款基于Promise实现的HTTP库,它的优点在于具有良好的可读性、易用性以及可扩展性。Vue作为一款流行的前端框架,也对Axios提供了全面支持。本文将介绍如何在Vue中进行Axios封装,并且介绍Axios常用的一些方法。一、Axios封装在开发过程中,我们常常需要对Axios进行一些自定义的封装,例如

如何在Go语言中实现封装和继承封装和继承是面向对象编程中的两个重要概念,它们可以使代码更加模块化和可维护,同时也为代码的复用提供了便利。本文将介绍在Go语言中如何实现封装和继承,并提供相应的代码示例。封装封装是将数据和功能进行封装,隐藏实现的细节,只暴露必要的接口给外部使用。在Go语言中,封装是通过导出和非导出标识符来实现的。首字母大写的标识符可以被其他包访

Python作为一门高级编程语言,被广泛应用于数据分析、机器学习、Web开发等领域。然而,随着代码规模不断扩大,Python程序的可扩展性问题也逐渐显现出来。可扩展性差错误是指Python程序在某些情况下不能很好地适应需求变化,无法对大规模数据进行处理,导致程序运行效果不佳。太多的依赖、糟糕的代码结构、缺乏文档等都是Python程序可扩展性差错误的罪魁祸首。

本站7月11日消息,经济日报今天(7月11日)报道,富士康集团已进军先进封装领域,重点布局时下主流的面板级扇出封装(FOPLP)半导体方案。1.继旗下群创光电(Innolux)之后,富士康集团投资的夏普(Sharp)也宣布进军日本面板级扇出式封装领域,预计将于2026年投产。富士康集团在AI领域本身就有足够的影响力,而补上先进封装短板之后让其可以提供“一条龙”服务,便于后续接受更多的AI产品订单。本站查询公开资料,富士康集团目前持有夏普10.5%的股权,该集团表示现阶段不会增持,也不会减持,将维


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
