精华内容
下载资源
问答
  • 微信小程序:多层次对象数组赋值动态赋值 假设现有数据:,现需要访问数据“品牌二”,设置该属性值为“品牌三” selectContent: [ { itemTitle: "品牌", itemContent: [ { isChecked: false, ...

    微信小程序:多层次对象数组的赋值、动态赋值

    假设现有数据:,现需要访问数据“品牌二”,设置该属性值为“品牌三”

    selectContent: [

      {
    
        itemTitle: "品牌",
    
        itemContent: [
    
          {
    
            isChecked: false,
    
            itemContentName: "品牌一"
    
          }, {
    
            isChecked: false,
    
            itemContentName: "品牌二"
    
          }
    
    ]
    

    }

    若采用以下的方法则无法设置该值:

    this.data.selectContent[0].itemContent[0].itemContenName = “品牌三” // 没用

    this.setData({

    selectContent[0].itemContent[0].itemContenName = "品牌三"    // 编译器报错
    
    // 或者
    
    ‘selectContent[0].itemContent[0].itemContenName = "品牌三"  ’   // 也没用
    

    })

    正确的设置方法是:

    this.setData({

    [`selectContent[0].itemContent[0].itemContenName` ] =  "品牌三" 
    

    })

    注意:用[] 将键括以来,键的外面的引号是斜单引号 即:` ,而不是中文 \’ 或者英文的单引号 ',此外,如果下标索引值是需要用变量指定时,可采用这样的方式

    this.setData({

    [selectContent[${iIndex}].itemContent[${jIndex}].itemContenName ] = “品牌三”

    })

    展开全文
  • 主要介绍了JS实现给json数组动态赋值的方法,结合实例形式分析了javascript针对json数组的遍历、赋值等常用操作技巧,需要的朋友可以参考下
  • this.setData给对象&&数组动态赋值

    千次阅读 2020-08-07 13:45:56
    data: { longitude:121.45088, latitude:31.25145, forData:{ Monday:1, Tuesday:2 }, markers: [{ longitude:121.45088, latitude:31.25145, ...赋值: ... //对象动态赋值 co..
      data: {
    		msg:'hello',
    		forData:{
    			Monday:1,
    			Tuesday:2
    		},
    	markers: [{
    			longitude:121.45088,
    			latitude:31.25145,
    		}]
      },
    

    赋值:

       	 this.setData({
    	     msg: 'hello,world'
    	  })
    	  //对象动态赋值
     	  const Mon= "forData.Monday";
    	  const Tue= "forData.Tuesday";
    	  this.setData({
    		 [Mon]:11,
    		 [Tue]:22
    	  })
    	  //数组动态赋值
    	  const lat= "markers[0].latitude";
    	  const log= "markers[0].longitude";
    	      this.setData({
    	       [lat]:110,
    	  	   [log]:23
    	      })
    
    展开全文
  • 对象数组赋值操作问题

    千次阅读 2018-08-16 19:24:53
    项目中遇到关于对象数组的操作问题,大概是将数据绑定到Layui的Table中。由于layui表格的数据填充是按照它的格式需求填入的,比如目前我遇到的是: cols: [[ { field: 'index_col1', title: '序号', width: 66 ...

    项目中遇到关于对象数组的操作问题,大概是将数据绑定到Layui的Table中。由于layui表格的数据填充是按照它的格式需求填入的,比如目前我遇到的是:

     cols: [[ 
                { field: 'index_col1', title: '序号', width: 66 },
                { field: 'stationName_col1', title: '站名',width: 106 },
                { field: 'temp_col1', title: '实时气温', width: 122.5, edit: 'text'},
                { field: 'index_col2', title: '序号', width: 66 },
                { field: 'stationName_col2', title: '站名', width: 106 },
                { field: 'temp_col2', title: '实时气温', width: 122.5, edit: 'text' },
                { field: 'index_col3', title: '序号', width: 66 },
                { field: 'stationName_col3', title: '站名', width: 106 },
                { field: 'temp_col3', title: '实时气温', width: 122.5, edit: 'text'}
            ]],

    然后我获取到的数据大概是这样的:

    data = [{ "index": "1", "stationName": "安吉1", "temp": "43" }, { "index": "1", "stationName": "安吉2", "temp": "23" }, {"index": "1", "stationName": "安吉3", "temp": "13" },
        { "index": "1", "stationName": "安吉4", "temp": "63" }, { "index": "1", "stationName": "安吉5", "temp": "43" }, {"index": "1", "stationName": "安吉6", "temp": "53" },
        { "index": "1", "stationName": "安吉7", "temp": "123" }, { "index": "1", "stationName": "安吉8", "temp": "33" }, {"index": "1", "stationName": "安吉8", "temp": "13" },
        { "index": "1", "stationName": "安吉10", "temp": "37" }, { "index": "1", "stationName": "安吉11", "temp": "23" }, {"index": "1", "stationName": "安吉12", "temp": "12" },
        { "index": "1", "stationName": "安吉13", "temp": "53" }, { "index": "1", "stationName": "安吉14", "temp": "32" }, {"index": "1", "stationName": "安吉15", "temp": "34" },
        { "index": "1", "stationName": "安吉16", "temp": "26" }, { "index": "1", "stationName": "安吉17", "temp": "124" }, {"index": "1", "stationName": "安吉18", "temp": "16" },
        { "index": "1", "stationName": "安吉19", "temp": "62" }, { "index": "1", "stationName": "安吉20", "temp": "53" }, {"index": "1", "stationName": "安吉21", "temp": "23" },
        { "index": "1", "stationName": "安吉22", "temp": "13" }, { "index": "1", "stationName": "安吉23", "temp": "81" }, {"index": "1", "stationName": "安吉24", "temp": "17" },
        { "index": "1", "stationName": "安吉25", "temp": "53" }, { "index": "1", "stationName": "安吉26", "temp": "83" }, {"index": "1", "stationName": "安吉27", "temp": "48" },
        { "index": "1", "stationName": "安吉28", "temp": "233" }, { "index": "1", "stationName": "安吉29", "temp": "16" }, {"index": "1", "stationName": "安吉30", "temp": "13" },
        { "index": "1", "stationName": "安吉31", "temp": "3" }, { "index": "1", "stationName": "安吉32", "temp": "43" }, {"index": "1", "stationName": "安吉33", "temp": "43" },
        { "index": "1", "stationName": "安吉34", "temp": "16" }, { "index": "1", "stationName": "安吉35", "temp": "31" }, {"index": "1", "stationName": "安吉36", "temp": "73" },
        { "index": "1", "stationName": "安吉37", "temp": "3" }, { "index": "1", "stationName": "安吉38", "temp": "41" }, {"index": "1", "stationName": "安吉39", "temp": "12" },
        { "index": "1", "stationName": "安吉40", "temp": "9" }, { "index": "1", "stationName": "安吉41", "temp": "26" }, {"index": "1", "stationName": "安吉42", "temp": "12" },
        { "index": "1", "stationName": "安吉43", "temp": "10" }, { "index": "1", "stationName": "安吉44", "temp": "17" }, {"index": "1", "stationName": "安吉45", "temp": "43" },
    ];

    这时候就需要将data数组中的元素进行拆分,项目的需求是三列数据展示,依次从上到下展示的数据是按temp数值的大小进行展示的。所以在拆分之前需要将data进行按temp大小的重新排序。跳过

    接着就是把排序好的数据进行拆分:

     var result = [];
                                                                        //三等分拆
            for (var i = 0, len = data.length; i < len; i += parseInt(data.length / 3)) {
                result.push(data.slice(i, i + parseInt(data.length / 3)));
            }
     var data_1 = new Array(),
                data_2 = new Array(),
                data_3 = new Array();
            colData = new Array();
            // console.log(result);
            data_1 = result[0];
            data_2 = result[1];
            data_3 = result[2];

    然后分别用三个新的数组获取。

    然后就是按照layui Table需求的格式对数据进行重组:

     for (var i = 0; i < data_1.length; i++) {
                var temp = data_1[i].stationName;
                var tempIndex = data_1[i].index;
                var tempTemp = data_1[i].temp;
                delete (data_1[i].stationName);
                delete (data_1[i].index);
                delete (data_1[i].temp);
                data_1[i].index_col1 = tempIndex;
                data_1[i].stationName_col1 = temp;
                data_1[i].temp_col1 = tempTemp;
            }
            for (var i = 0; i < data_2.length; i++) {
                var temp = data_2[i].stationName;
                var tempIndex = data_2[i].index;
                var tempTemp = data_2[i].temp;
                delete (data_2[i].stationName);
                delete (data_2[i].index);
                delete (data_2[i].temp);
                data_2[i].index_col2 = tempIndex;
                data_2[i].stationName_col2 = temp;
                data_2[i].temp_col2 = tempTemp;
    
            }
            for (var i = 0; i < data_3.length; i++) {
                var temp = data_3[i].stationName;
                var tempIndex = data_3[i].index;
                var tempTemp = data_3[i].temp;
                delete (data_3[i].stationName);
                delete (data_3[i].index);
                delete (data_3[i].temp);
                data_3[i].index_col3 = tempIndex;
                data_3[i].stationName_col3 = temp;
                data_3[i].temp_col3 = tempTemp;
    
            }
            for (var i = 0; i < data_1.length; i++) {
                colData[i] = Object.assign(data_1[i], data_2[i], data_3[i]);
            }

    colData[i] = Object.assign(data_1[i], data_2[i], data_3[i]);这个方法是将三个数组重组成一个,方便填入数据。

    table.render({

    ........

    data:colData

    ...

    })

    填入数据。

    但是,项目要求对展示的数据还要对temp的数值大小进行降序,升序的排列展示。

    在这里,由于已经对数据data进行过操作了,所以data已经发生了改变,如果要满足自己的要求去排序的话,就不能在第一次排序中直接对data进行操作。因为对象的赋值都是指向性的。

    所以要用新的对象去承载data中的对象值,然后赋值给要用到变量数组。

     function getNewData() {
            firstData = new Array();
            for (var i = 0; i < data.length; i++) {
                var obj = {};
                obj.index = data[i].index;
                obj.stationName = data[i].stationName;
                obj.temp = data[i].temp;
                firstData.push(obj);
            }
        }

    在这里使用firstData获取data中的对象元素。每次要操作data时,都重新调用一次该函数。

    展开全文
  • 前言 1255: 打怪升级(Java),写这个题目程序的时候,控制台提示如下错误: Exception in thread "main" java.lang....然后我调试才发现,这个对象数组居然是null的,这我就不理解了,我明明写

    前言

    1255: 打怪升级(Java),写这个题目程序的时候,控制台提示如下错误:

    Exception in thread "main" java.lang.NullPointerException
    	at oj1255.Main.input(Main.java:41)
    	at oj1255.Main.<init>(Main.java:24)
    	at oj1255.Main.main(Main.java:52)
    

    然后我调试才发现,这个对象数组居然是null的,这我就不理解了,我明明写了new的……


    于是就有了这篇博客。为了突出重点,就重新写了个类,因此直接看下面的即可,不用管前言。

    参考

    跳币上山岭的博客

    示例

    package error.inner;
    
    public class Outer {					// 外部类
    	private class Inner {				// 内部类
    		public int x;					// 内部类属性
    	}
    	
    	private Inner[] test;				// 内部类对象数组
    	
    	public Outer() {					// 外部类构造方法
    		test = new Inner[2];			// 创建内部类对象数组
    		for(int i = 0; i < 2; i++) {
    			test[i].x = i;				// 赋值
    		}
    		for(int i = 0; i < 2; i++) {	// 输出内部类属性值
    			System.out.println(test[i].x);
    		}
    	}
    	
    	public static void main(String[] args) {
    		new Outer();
    	}
    }
    

    乍一看,你可能会觉得这段代码没有任何问题,然而事实是在控制台丢一个Exception给你:

    Exception in thread "main" java.lang.NullPointerException
    	at error.inner.Outer.<init>(Outer.java:13)
    	at error.inner.Outer.main(Outer.java:21)
    

    报错在第13行test[i].x = i;,于是进入了Debug模式

    error.inner
    从红色箭头那一行,我们看到test[0]null的,到这里应该都明白了。
    我们在第11行test = new Inner[2]的代码实际上只是申请的对象数组的大小,如下图所示:

    内存图

    堆内存里面并没有Inner的实例,因此我们需要加1行代码(第4行)即可:

    	public Outer() { 					// 外部类构造方法
    		test = new Inner[2]; 			// 创建内部类对象数组
    		for (int i = 0; i < 2; i++) {
    			test[i] = new Inner();		// 创建对象
    			test[i].x = i; 				// 赋值
    		}
    		for (int i = 0; i < 2; i++) { 	// 输出内部类属性值
    			System.out.println(test[i].x);
    		}
    	}
    

    其他代码都不用改,这样一来,堆中就变成了这样:

    内存图

    到这里再运行程序,就能正常输出想要的东西了:
    结果

    小结

    类的实例数组,每一个都需要单独创建。切记!切记!


    展开全文
  • 赋值
  • Java类对象数组赋值问题

    千次阅读 2020-04-03 22:43:58
    对象数组在应用是可能会忽略再次实例化对象的一个过程, 下面是代码: Student[] student = new Student[5]; for(int i = 0; i < 5; i++) { student[i] = new Student(); //此行即是重点 !!! student[i].set...
  • 主要介绍了JavaScript数组对象赋值用法,涉及javascript用户交互及针对数组的排序技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • js之给json数组动态赋值

    万次阅读 2016-07-29 10:47:24
    我是代码json 数组也是数组 //1、 var jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]"; var jsonarray = eval('('+jsonstr+')');var arr = { "name" : $('#names').val(), "value" : $('#
  • 创建对象数组过程如创建整数数组一样 如下所示: Int array[8]; Array[0]=;array[1]=; …… 在定义数组之后!(注意前提条件) 你只能对数组成员进行赋值,不能初始化,因为数组成员在定义时一定初始化。 只不过相比...
  • C#为字符串数组动态赋值的问题

    千次阅读 2017-09-29 11:33:00
    今天才发现一个很简单很基本的问题,就是怎么也不能正确。... //使用了未赋值的局部变量a 方法2: string[] a = new string[] { }; a[0] = "we"; MessageBox.Show(a[0]); //可以编译通过..... 解决方案: 改用Li...
  • react 给数组对象赋值

    千次阅读 2019-11-13 20:43:36
    给react 给数组对象赋值 比如state中数据为 this.state = { MerchantList:[{ storeId:123, storeName:"假数据", storeLocation:"假数据", isItemSelected...
  • 对象数组传递赋值之引用传递

    千次阅读 2018-08-08 23:56:14
    对象数组都是引用类型数据,在上述赋值操作过程中,仅仅是将存储在栈中的路径进行的赋值,而未对堆中的数据进行赋值,所以两者依然依赖相同的堆中存储的数据,改变后者,实际上是通过栈中存储的路径改变了堆中的...
  • js对象数组赋值或者新增新对象

    千次阅读 2019-08-21 13:14:42
    给数组里的对象进行赋值,如果不存在就添加新的数据对象 var model = [] //newData是新的对象数组 model = Object.assign({}, model ,newData.data)
  • 数组对象赋值: data: { dataList: [] } let data ={ a: "aaa", b: "bbb" } this.setData({ ['dataList[' + index + ']']: data }) 对象数组显示: ...
  • 关于Java对象数组赋值的问题

    千次阅读 2019-12-18 12:18:49
    在写Java大作业时需要对对象数组赋值,而我的程序在赋值完后,我发现对象数组中的每个对象都相同。 定义对象数组 读取文件中的数据,设置一个临时变量stu储存每一个对象的信息并赋值 上诉代码每次赋玩值后都输出第...
  • /** 1、基本数据赋值: */ data:{ showTip:false, contractForm:{}, types: [], ...2、数组对象赋值(下标): */ data:{ guestList:[] }, //(1) 固定下标:(给下标为1的guestList数组的checkStatus对象
  • 所谓的解构赋值就是:按照一定模式,从数组对象中提取值,对变量进行赋值(先解析结构再进行赋值)。 对象的解构赋值 对象是通过属性名进行解构(是用的最多的解构赋值) 基本使用 // 创建一个对象 let obj = {...
  • JavaScript 中对象数组赋值是默认引用赋值的,使得改变对象时,原对象跟着改变, 如果你想要复制赋值,则必须要重新分配对象,使用如下代码即可避免此问题: 1、对象 Object.assign({}, object) let a = {'...
  • 创建对象数组,给数组赋值(两种理解思路) class Student{ String name; int age; } public class StudentTest{ Student []stu=new Student[5];//创建学生对象数组(其中的元素是类的一个对象) ...
  • Java中的数组引用赋值

    万次阅读 2019-09-20 17:39:01
    引用赋值不是简单的赋值操作,而是能够通过对对象b进行赋值操作从而对对象a进行修改值的行为。 //这是一种简单的将数组n中的值对应赋给数组num int i; for(i = 0; i < length; ++i) num[i] = n[i]; 在上述程序...
  • 数组循环赋值对象

    千次阅读 2019-07-25 16:40:39
    public static void arrayToObject(String[] stringArray,Ftp myFK)throws Exception{ Field[] field = myFK.getClass().getDeclaredFields(); for(int i=0;i<field.length;i++){ String fieldName = fie....
  • javaScript向对象数组赋值

    万次阅读 2018-09-05 10:26:35
    需求:最终的数组对象如下,从后台获取到的是tableNames,需要将其中的值赋值text var data = [ {id:'item1',text:'选项1'}, {id:'item2',text:'选项2'}, {id:'item3',text:'选项3'}, {id:'item4',text:'选项4'}...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 497,173
精华内容 198,869
关键字:

对象数组动态赋值