实用的开发技巧总结

最近写业务代码的时候遇到个问题:如何进行两组数据的匹配?首先想到的就是嵌套双重循环(我这里是两组数组),但是双重循环性能是很低的。这里我尝试两种方法做个数组去重处理。

var oldArr = [{
id: 1,
name: ‘value1‘
},
{
id: 2,
name: ‘value2‘
},
{
id: 3,
name: ‘value3‘
},
{
id: 4,
name: ‘value3‘
},
{
id: 5,
name: ‘value5‘
}
],
newArr = [],
map = {}
// 方法一
for(var i = 0;i < oldArr.length;i ++){
var el = oldArr[i],isRepeat = false
if(!newArr.length){
newArr.push(el)
continue
}
for (var j = 0; j < newArr.length; j++) {
var innerEl = newArr[j]

if(el.name == innerEl.name){
isRepeat = true
break
}
}
if(!isRepeat){
newArr.push(el)
}

}
console.log(newArr)

// 方法二
for(var i = 0;i < oldArr.length;i ++){
var el = oldArr[i].name
if(!map[el]){
newArr2.push(oldArr[i])
map[el] = true
}else{
alert(‘有重复!‘)
}

}
console.log(newArr2)

写得不是很好,只是自己把思路理了一下。。。。。。

时间: 2024-08-24 22:34:23

实用的开发技巧总结的相关文章

Android-Tips(实用Android开发技巧)

整理本人实际开发中遇到的一些问题以及解决办法和一些开发技巧,以后会不定时更新. tips:利用"目录"可快速导航 1.追溯sdk中某一个类随sdk版本升高导致的历史变迁.(find API changes) 问题来源:SwipeRefreshLayout源码:判断子View是否能向上滚动(或者是否滚动到顶部): /** * @return Whether it is possible for the child view of this layout to * scroll up. O

angularJS实用的开发技巧

一.开端 真的是忙完这一阵子就可以忙下一阵子了啊... 最近在做一个angularJS+Ionic的移动端项目...记录一些技巧,方便自己以后查阅,也方便需要的人可以看一看...^_^ 二.基础原则了解 ①angular的一些入门了解 一.基础知识 1.angular放弃了IE8 2.四大核心分别是mvc.模块化.指令系统.双向数据绑定 二.一些原则 1.不要复用controller,一个控制器一般只负责一小块视图. 2.不要在controller里面操作dom. 3.不要在contorller

iOS 完整项目集合 精选好看炫酷的动画DEMO 实用的开发技巧

Dear all:一周一weekly又来啦~很多code友反应weekly精品干货,非常好,非常多哦,建议各位code友如果现在暂时用不到,可以先做收藏哦,以后查用起来也方便哈~不多说进入正题 <ignore_js_op> [一周精品源码] LMLiveStreaming 直播框架[img]file:///C:\Users\zhangjy\AppData\Roaming\Tencent\QQ\Temp\[email protected][GWU0353$FOVS.png[/img]http:/

10个实用Eclipse调试技巧

Eclipse是众多Java程序员实用的开发工具,其中开发技巧也是繁多,但作为优秀的Java程序员,需要掌握最起码的调试技巧. 小编从前辈程序员和网络中,整理了10个Eclipse调试技巧,希望对Java程序员有用. 1 条件断点 如果你不知道如何添加断点,只需点击左边面板(行号前面)断点即被创建.在调试界面中,"断点"视图会把所有被创建的断点列出来.我们可以给它加一个布尔条件,也就是说,该断点会被激活并且如果布尔条件为真,就会执行该断点,否则将会跳过往下执行. 2 异常断点 在断点视

移动 Web 开发技巧之(后续)

昨天的<移动 Web 开发技巧>的这篇文章,大家反响不错,因为这些问题在大家日常写移动端的页面时经常遇到的.所以那个文章还是超级实用的,那么我们今天继续来分享一下移动端的web开发技巧吧,希望对大家有所帮助. PS:不要让小伙伴第一次写移动端像下面这位一脸的蒙逼哈哈… … 第一.启用 WebApp 全屏模式(IOS) 当网站添加到主屏幕后再点击进行启动时,可隐藏地址栏(从浏览器跳转或输入链接进入并没有此效果) <meta name="apple-mobile-web-app-c

iOS 开发技巧

快速移除键盘 之前一直是讲view的父类改成control,然后加一个全屏按钮,点击让键盘消失.这个方法要写好多代码,现在一个比较好的方法是重写一个下面的方法: ? 1 2 3 4 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {     [self.view endEditing:YES]; } iOS 开发技巧,布布扣,bubuko.com

AngularJS进阶(二十九)AngularJS项目开发技巧之localStorage存储

AngularJS项目开发技巧之localStorage存储 绪 项目开发完毕,测试阶段发现后台管理端二维码生成有问题,问题在于localStorage的存储.如下图左所示,二维码生成完毕包含信息如下图左所示,实际二维码信息如下图右所示: 经过测试发现二维码实际存储的是上一次的结果.好熟悉~Bingo,自己做导航栏高亮时就遇到过这个问题,当时就是使用的localStorage.问题还是出在localStorage身上.但是存储时:localStorage.setItem(key,value),如

iOS开发——使用技术OC篇&amp;项目实战总结之开发技巧

项目实战总结之开发技巧 本文收集了25个关于可以提升程序性能的提示和技巧 1.使用ARC进行内存管理 2.在适当的情况下使用reuseIdentifier 3.尽可能将View设置为不透明(Opaque) 4.避免臃肿的XIBs 5.不要阻塞主线程 6.让图片的大小跟UIImageView一样 7.选择正确的集合 8.使用GZIP压缩 9.重用和延迟加载View 10.缓存.缓存.缓存 11.考虑绘制 12.处理内存警告 13.重用花销很大的对象 14.使用Sprite Sheets 15.避免

经典收藏 50个jQuery Mobile开发技巧集萃

1.Backbone移动实例 这是在Safari中运行的一款Backbone移动应用程序.想开始体验移动开发,一个好的出发点就是关注这个应用程序的构建方式.先不妨在你的浏览器中查看该应用程序. 相关链接:http://bennolan.com/2010/11/24/backbone-jquery-demo.html 2.使用媒体查询来锁定设备 你可能会问如何使用CSS来锁定设备(根据屏幕尺寸).比如说,你想要为iPad设计两列布局.为智能手机设计单列布局.要做到这一点,最佳办法就是使用媒体查询.