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代码都 ...
随机推荐
- 最简单的 IntelliJ IDEA 中使用 GitHub 进行版本控制教程(持续更新中)
一.在 IntelliJ IDEA 中新建一个项目并提交到 GitHub 1. 运行 IDEA,点击[Create New Project],在 IDEA 中新建一个项目. 2. 在选择项目类型对话框 ...
- 一步步玩pcDuino3--uboot下的ping,加入命令能够接受来自host的ping
uboot是一个很优秀的开源项目.不只能够学习bootloader.嵌入式,各种总线协议. 还能够了解网络协议栈.在嵌入式开发中,常常使用uboot的tftp和nfs来加快开发的效率.那么在tftp能 ...
- Linux环境编程之同步(三):读写锁
概述 相互排斥锁把试图进入我们称之为临界区的全部其它线程都堵塞住.该临界区通常涉及对由这些线程共享一个或多个数据的訪问或更新.读写锁在获取读写锁用于读某个数据和获取读写锁用于写直接作差别. 读写锁的分 ...
- GCD 开启一个定时器实现倒计时功能
UIAlertView * alt = [[UIAlertView alloc] initWithTitle:@"提示" message:@"操作成功,马上返回继续体验吧 ...
- Idea操作与问题解决
1,.properties文件汉字编码出错 主要是Editer的Encoding出错,可在File->settings->Editer->FileEncoding中修改为: 可参考: ...
- 数据结构之 图论---连通分量的个数(dfs搜索)
数据结构实验:连通分量个数 Time Limit: 1000MS Memory limit: 65536K 题目描述 在无向图中,如果从顶点vi到顶点vj有路径,则称vi和vj连通.如果图中任意两个 ...
- codeforces B. Convex Shape 解题报告
题目链接:http://codeforces.com/problemset/problem/275/B 题目内容:给出一个n * m 大小的grid,上面只有 black 和 white 两种颜色填充 ...
- python中字符串的内置方法
这里说的是字符串中的内置方法,毕竟字符串是最常用的操作对象. ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '_ ...
- 装饰器 decorator
装饰器 def document_it(func): def new_function(*args, **kwargs): print('Running function:', func.__name ...
- su 和sudo 命令
一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...