js对数组处理(数组里边相同元素提取成map)
1.数组里边相同元素提取成map,并以‘’,‘’分隔
例如:var arr = [{a:"xx",b:''xxx''},{a:"xxx",b:''xxxxx''},.....];
想要的结果 a = {''xx'',''xxx'',.....}; b = {''xxx'',''xxxxx'',.....};
var a = arr.map(function(item){
return item.a;
}).join(',');
以上同理b;
2.从数组中找出与当前id匹配的对象
例如:var arr = [{obja},{objb},{objc},....];
假设当前id为currentId 与arr里边的某一个对象的id匹配
则:当前匹配的对象
currentObj = $filter('filter')(arr,function(item){
return currentId === item.id;
})[0];
或者用underscore.js里边的_.filter方法
currentObj = _.filter(arr,function(item){
return currentId === item.id;
})[0];
3.两个数组值一一对应(对两个input输入值处理成数组并一一对应处理)
例如:var item.account=1;2;2;5; var item.deployPath=5;6;7,item.packageConfigDeployViews是数组有值修改/没值添加
下面实例是以那个数组长度长作为对应条件
if(item.packageConfigDeployViews){
var account = item.account.split(';');
var deployPath = item.deployPath.split(';');
if(account.length>=deployPath.length){
item.packageConfigDeployViews=_.map(account,function(val,index){
var obj=item.packageConfigDeployViews[index];
if(!_.isEmpty(obj)){
obj.account=val;
obj.deployPath=deployPath[index];
return obj;
}else{
return {account:val,deployPath:deployPath[index]};
}
});
}else{
item.packageConfigDeployViews=_.map(deployPath,function(val,index){
var obj=item.packageConfigDeployViews[index];
if(!_.isEmpty(obj)){
obj.deployPath=val;
obj.account=account[index];
return obj;
}else{
return {deployPath:val,account:account[index]};
}
});
}
}else{
if(!_.isEmpty(item.account)&&(!_.isEmpty(item.deployPath))){
var account = item.account.split(';');
var deployPath = item.deployPath.split(';');
if(account.length>=deployPath.length){
item['packageConfigDeployViews']=_.map(account,function(val,index){
return {account:val,deployPath:deployPath[index]};
});
}else{
item['packageConfigDeployViews']=_.map(deployPath,function(val,index){
return {deployPath:val,account:account[index]};
});
}
}
}
3.数组处理的一些常用js方法
concat() :连接两个或多个数组。
every() :检测数值元素的每个元素是否都复合条件。
fill() :使用一个固定值来填充数组。
indexOf() :搜索数组中的元素,并返回在数组中的位置。大于-1返回true。
join() : 把数组所有元素放入一个字符串。
map() : 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
pop() :删除数组的最后一个元素并返回删除元素。与之对应的 shift() 删除数组第一个元素并返回删除元素。
reverse() :反转数组的顺序。
slice(start,end):已有数组中返回指定元素,不包含start和end元素。
some() :检测数组中是否有元素符合指定条件。
splice() :从数组中删除指定元素。
trim():删除左右两边空格。
js对数组处理(数组里边相同元素提取成map)的更多相关文章
- JS对象 Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的
Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个"下标",用来表示它在数组中的位置,是从零开始的 数组定义的方法: 1. 定 ...
- 关于DOM中的model(将元素转成对象进行操作)
DOM document (html, xml) object 将文档中的HTML元素转成js的对象 通过ID找到文档的元素转成js对象 var obj = document.getElementBy ...
- JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. var ary = new Array(&qu ...
- js随机从数组中取出几个元素
JS如何从一个数组中随机取出一个元素或者几个元素. 假如数组为 var items = ['1','2','4','5','6','7','8','9','10']; 1.从数组items中随机取出一 ...
- js获取对象、数组的实际长度,元素实际个数
/*获取对象.数组的长度.元素个数 *@param obj 要计算长度的元素,可以为object.array.string */ function count(obj){ var objType = ...
- JS 比较两个数组是否相等 是否拥有相同元素
Javascript怎么比较两个数组是否相同?JS怎么比较两个数组是否有完全相同的元素?Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都 ...
- Js数组里剔除指定的元素(不是指定的位置)
s数组里删除指定的元素(不是指定的位置)之前一直是做后端的,从来也没有写过js,但是却一直想学学,也只是基于兴趣而已!现在到了这个公司,确实大量的写js.但也一直都是没有系统的去看过js!都是搞什么查 ...
- JS如何去掉一个数组的重复元素 (数组去重)
一.思路如下: 定义一个新数组,将老数组遍历一遍,再进行判断,如果新数组里面没有老数组的元素就添加,否则就不添加,最终输出整个新数组. 二.代码如下: var arr = ["a" ...
- JS比较两个数组是否相等 是否拥有相同元素
Javascript怎么比较两个数组是否相同?JS怎么比较两个数组是否有完全相同的元素?Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都 ...
随机推荐
- 今日头条Go建千亿级微服务的实践
今日头条Go建千亿级微服务的实践_36氪 http://36kr.com/p/5073181.html
- java内存泄露具体解释
非常多人有疑问,java有非常好的垃圾回收机制,怎么会有内存泄露?事实上是有的,那么何为内存泄露?在Java中所谓内存泄露就是指在程序执行的过程中产生了一些对象,当不须要这些对象时,他们却没有被垃圾回 ...
- spring IOC(转)
原文 http://stamen.iteye.com/blog/1489223 引述:IoC(控制反转:Inverse of Control)是Spring容器的内核,AOP.声明式事务等功能在此基础 ...
- cc 和gcc编译器
从名字上看,老的unix系统的CC程式叫做C Compiler.但GCC这个名字按GNU的说法叫做Gnu Compiler Collection.因为gcc包含非常多编译器(C, C++, Objec ...
- Ubuntu下声卡驱动解决方法alsa
一.首先介绍一下什么是ALSA : Advanced Linux Sound Architecture 的简称为 ALSA ,译成中文的意思是先进的Linux声音架构(这是google翻译的):一谈到 ...
- 【 spring配置文件详解】
转自: http://book.51cto.com/art/201004/193743.htm Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的 ...
- html页面表格导出到excel总结
转载:http://www.cnblogs.com/liuguanghai/archive/2012/12/31/2840262.html <table id="tableExcel& ...
- html5--4-2 video元素的属性
html5--4-2 video元素的属性 学习要点 掌握video元素的基本用法 直到现在,在网页中的大多数视频是通过插件(比如 Flash)来显示的.然而,并非所有浏览器都拥有同样的插件.HTML ...
- Android Studio中的“favorites”和“bookmark”
做项目难免来回查看某个文件的某个方法,某些文件可能访问率很高, 为了加快开发效率楼主推荐使用favorites (文件)bookmark (代码 行). favorites 的添加就在文件单击右键ad ...
- AndroidManifest配置之uses-sdk
uses-sdk配置 uses-sdk用来设置app对android系统的兼容性.它包含三个可选的配置项,分别为android:minSdkVersion,android:targetSdkVersi ...