js 字符串格式数组转为数组对象
工作中经常会遇到将json字符串转换为json对象,但是将字符串格式数组转为数组对象的场景却不多
如:

其中label_exp: "["cap_pop","wkb_geometry"]" 就是需要操作的数组对象
假如我们直接使用obj.label_exp.find(item=>{})会提示该label_exp不是一个function
如:

好嘛,那我们换着 使用
for(let i=0;i<labelExp.length;i++){
console.log(labelExp[i]);
}
会取到label_exp: "["cap_pop","wkb_geometry"]" 中的每一个字符
如:

最后使用到了eval 将字符串转换为真正的数组对象
console.log(labelExp);
let labelExpArr = eval('('+labelExp+')');
console.log(labelExpArr);
这样就对了
来我们从打印中对比一下转换前后的两个对象的区别
如:

对比着看是否很明显就能区分哪一个是数组对象呢? 假如我们光看第一个,如:

是否会认为这就一个数组对象呢?
其实evel 应用于json 取值的场景也很多,如下面的一个简单的json
var jsonobj ={
psnLoanCount1:12,
psnLoanCount2:22,
psnLoanCount3:33,
psnLoanCount4:44,
psnLoanCount5:55,
psnLoanCount6:66,
lozd:'kk',
uewjh:'kk',
jdvn:'odsj',
ucnd:'ucn'
};
假如我们想把所有包含psnLoanCount的字段的值统计起啦,这里就可以用到eval了
var sumCount = function(jsonobj){
var count_primal;
//遍历数据json 获取对应的字段filed
for(var k in jsonobj){
if(k.indexOf("Count")>0){
count_primal==null||count_primal==""?count_primal=k:"";//只接受第一个参数
}
}
//截取掉实参值的最后一位,因为最后一位为数字 如:psnLoanCount1
var count=count_primal.substring(0,count_primal.length-1);
var total=0;
for(var i=1;i<7;i++){
//define variable_value key
var variableKey_value=count+i;
total+= eval("jsonobj."+variableKey_value);
}
return total;
};
调用发方法
> console.log(sumCount(jsonobj)); /// 232
这只是一个简单的例子可能实际工作中场景要复杂得多了
js 字符串格式数组转为数组对象的更多相关文章
- 用js将CheckBox的值存入数据库和将数据库字符串的值转为数组选中CheckBox
Index @{ ViewBag.Title = "测试"; } <script src="~/Scripts/jquery-1.10.2.js"> ...
- javascript中字符串格式转化成json对象记录
什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于 ...
- js 字符串格式化为时间格式
首先介绍一下我遇到的坑,找了几个关于字符串转时间的,他们都可以就我用的时候不行. 我的原因,我的字符串是MYSQL拿出来的不是标准的时间格式,是不会转成功的. 解决思路:先将字符串转为标准时间格式的字 ...
- js字符串首字母转为大写
function initialsLetterUpperCase(arr){ if(Array.isArray(arr)){ return arr.map(function(val,index,arr ...
- js 字符串首字母转为大写 正则
function replaceReg(str){ var reg = /\b(\w)|\s(\w)/g; str = str.toLowerCase(); return str.replace(re ...
- Java将其他数据格式转换成json字符串格式
package com.wangbo.util; import java.beans.IntrospectionException; import java.beans.Introspector; i ...
- JS 字符串对象 数组对象 函数对象 函数作用域
一.内置对象 object对象:ECMAScript 中的所有对象都由这个对象继承而来:Object 对象中的所有属性和方法都会出现在其他对象中 ToString() : 返回对象的原始字符串表示.V ...
- 页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作
页面循环绑定(变量污染问题) var lis = document.querySelectorAll(".ul li") for ( var i = 0 ; i < lis. ...
- Json数组(以[ ] 中括号开头)字符串转为json对象
以 [] 开头的json数组字符串: str = "[{ "姓名":"张三", "年龄":"28" }]&qu ...
- nashorn中js数组转为对象的问题
背景 在项目中,使用jdk中的nashorn执行javascript脚本,例如如下脚本片段: let ctx = session.ctx; ctx.confirm = { //车牌划分后的数组 seg ...
随机推荐
- Mathematica制作和使用程序包
步骤 这里拿你制作并且使用一个程序包lost为例子 新建一个空白.wl文档,输入代码如下 BeginPackage[ "MyPkg`"] MainFunction::usage = ...
- Java里的对象是咋回事
前言 在上一篇文章中,壹哥给大家介绍了Java中的类及其特点.创建过程等内容,相信你现在已经知道该如何创建一个Java类了.接下来在本篇文章中,壹哥会继续带大家学习面向对象中关于对象的内容.其实类和对 ...
- CSS 基础属性篇组成及作用
#### 学习目标- css属性和属性值的定义- css文本属性- css列表属性- css背景属性- css边框属性- css浮动属性##### 一.css属性和属性值的定义>属性:属性是指定 ...
- java多线程基础小白指南--synchronized同步块
sychronized是java多线程非常关键的一个知识点,这篇博客将从synchronized几个用法以及代码来学习. sychronized的作用是能够保证同一时间只有一个线程来运行这块代码,达到 ...
- AI工具导航
.xe-comment-entry img { float: left; display: block; background: rgba(136, 136, 136, 0.15); margin-r ...
- 正态分布密度函数的动画演示—R语言
正态分布是概率统计中最重要的一种分布,其重要性我们可以从以下两方面来理解:一方面,正态分布是自然界最常见的一种分布.一般说来,若影响某一数量指标的随机因素很多,而每个因素所起的作用都不太大,则这个指标 ...
- PDD也可以通过ID获取商品详情?
先我们可以通过pinduoduo.item_get的接口传入商品的ID参数,这个接口可以获取到拼多多商品的详情数据,包括商品的标题.价格.原价.卖家的昵称.库存.销量.宝贝的链接.商品的备注.宝贝图片 ...
- CentOS安装时钟同步服务
使用chrony用于时间同步 yum install chrony -y vim /etc/chrony.conf cat /etc/chrony.conf | grep -v "^#&qu ...
- 京东LBS推荐算法实践
作者:京东零售 郑书剑 1.推荐LBS业务介绍 1.1 业务场景 现有的同城购业务围绕京东即时零售能力搭建了到店.到家两种业务场景.同城业务与现有业务进行互补,利用高频,时效性快的特点,可以有效提升主 ...
- linux防火墙开放1521端口
问题描述:使用plsql连接数据库发现TNS报错,登录服务器发现防火墙开放,如果直接关闭防火墙,所有的端口都可以连接,但是实际中可能会遇到开启防火墙的库,这时候需要开放单一端口对某一服务器或者某一网段 ...