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代码都 ...
随机推荐
- CMD命令操作
win + R 然后输入 cmd 打开命令窗口 或者开始-->运行 打开 1.进入 D盘 输 d: 回车2.进入D盘 子目录 输入 cd d:\test 回车 3. dir 回车 进入文件目录 ...
- PO 审批及生成xml文件
*********************************************************************** * Report : YTST_RAINY_MM2 * ...
- 【Effective C++】继承与面向对象设计
关于OOP 1,继承可以是单一继承或多重继承,每一个继承连接可以是public.protected或private,也可以是virtual或non-virtual. 2,成员函数的各个选项:virtu ...
- 对服务器上所有Word文件做全文检索的解决方案-Java
一.背景介绍 Word文档与日常办公密不可分,在实际应用中,当某一文档服务器中有很多Word文档,假如有成千上万个文档时,用户查找打开包含某些指定关键字的文档就变得很困难,目前这一问题没有好的解 ...
- 浏览器端JS导出EXCEL
浏览器端JS导出EXCEL FileSaver.js 实现了在本身不支持 HTML5 W3C saveAs() FileSaver 接口的浏览器支持文件保存.FileSaver.js 在客户端保存文件 ...
- 在KitKat(Android 4.4.2) 推送网址给手机
弱者才会回避问题. 最近想把网址推送给手机实现后台下载,打算故技重施,用短信传送然后中断广播的方法实现隐蔽传送.试了半天发现怎么现在拦不住短信了.查了一下才发现原来Android4.4增加了一个安全机 ...
- webstorm怎样查找历史记录
在webstorm中 文件界面右键,local History --> show History 上面能看到具体的日期和编写的代码. 如果想回到某一次的代码.把中间的代码按>>移入到 ...
- YouTube视频签名加密算法的破解
密码学方法 多年以前,YouTube的视频源地址是直接encode在页面中的,你甚至可以用一行Perl来下载它们. 直到2012年8月,这个简单的脚本(用在0.0.1版本的You-Get中)仍然可以解 ...
- HttpPost 传输Json数据并解析
转自:https://blog.csdn.net/qq_35114086/article/details/52317311 这里写个测试用例模拟外部调用,通过httppost 传递一个json封装的表 ...
- C++学习笔记1-使用数组进行vector初始化
另外,如果是定义的时候,可以直接指定复制.比如:int s[5]={1,2,3,4,5};vector<int> v(s,s+5);就可以啦.