精华内容
下载资源
问答
  • 微信小程序:多层次对象数组的赋值、动态赋值 假设现有数据:,现需要访问数据“品牌二”,设置该属性值为“品牌三” 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 ] = “品牌三”

    })

    展开全文
  • 对象数组的赋值操作问题

    千次阅读 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时,都重新调用一次该函数。

    展开全文
  • 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...
    类对象数组在应用是可能会忽略再次实例化对象的一个过程, 下面是代码:
    Student[] student = new Student[5];
    for(int i = 0; i < 5; i++) {
    	student[i] = new Student(); 	//此行即是重点 !!!
    	student[i].setName(textName.getText());
    	student[i].setAge(textAge.getText().trim());
    }
    
    一定要再new一次, 为什么呢? 看下面这张图:

    在这里插入图片描述

    1. 定义了一个类数组后,系统只是分配了一个引用空间,并没有实际分配内存空间给数组中的元素,因此类数组中的元素还是需要使用new运算符来实例化.
    2. 在声明了自定义类的数组之后,对每一个数组元素的初始化,都要为其new一个对象出来使得指针指向该对象,Java语言本身是不提供在自定义类数组声明时候自动创建新对象的方式的.
    3. 相当于c语言里指针变量本身占的空间和指针所指向的变量所占的空间, 也可以理解为二维数组.
    展开全文
  • 创建对象数组过程如创建整数数组一样 如下所示: Int array[8]; Array[0]=;array[1]=; …… 在定义数组之后!(注意前提条件) 你只能对数组成员进行赋值,不能初始化,因为数组成员在定义时一定初始化。 只不过相比...

    创建对象数组过程如创建整数数组一样
    如下所示:
    Int array[8];
    Array[0]=;array[1]=;
    ……
    在定义数组之后!(注意前提条件)
    你只能对数组成员进行赋值,不能初始化,因为数组成员在定义时一定初始化。
    只不过相比于显式的初始化(例如int b[] ={1,3,5}),还存在一种隐式自动初始化,看下面资料。

    资料如下

    数组如果没有显示地初始化,即在定义数组的时候,就给它们赋值。那么,定义出来的数组满足以下三点规则(隐式初始化):
    1. 定义在函数体外的数组,并且数组类型是内置类型,那么数组自动初始化为0.
    2. 定义在函数体内的数组,并且数组类型是内置类型,那么数组没有被初始化,这也是导致bug的一个来源。
    3. 不管数组在哪里定义,只要数组类型是一个自定义类,那么数组就会被默认构造函数初始化。

    看完回来。

    所以一旦定义后,就不可能再初始化,因为已经默认初始化。
    同理,对象数组中的默认初始化,参数初始化通通不能用。

    所以
    对象数组的创建有两种方式

    通常做法是:创建一个类成员函数set函数,该函数对各成员赋值,(对于类成员,引用,常量这些只能初始化不能赋值的特殊情况 后面做详细讨论。)创建对象数组最普通的方法,该举例在文章末尾请跳转。
    奇葩做法:定义对象数组同时初始化,类比(int b[] ={1,3,5})。

    比较优缺点:通常做法适合 循环输入。

    进阶问题:

    那如果针对类成员,引用,常量特殊情况,怎么办?
    既要数组,又要构造(初始化)。
    方法1:
    可以在默认构造函数进行他们的初始化,但是只能初始化事先确定的值而且所有对象都是这一个值,不能初始化你想输入的值也不能每个对象具有不同的值。所以太局限了。
    方法2:
    我称之为构造拷贝法。
    Class base{};
    …….
    base* pf = new base[3];
    for(int i=0;i<3;i++)
    {
    cin >> a >> b;
    pf[i]=base (a,b);
    }

    也就是通过逐一外界输入参数进行构造函数调用,初始化后的对象拷贝给对象数组的成员。

    其实方法2依旧无法解决 特殊成员的构造问题,因为类成员,引用,常量不能赋值继而也不能拷贝构造。
    方法1虽然可以但充满局限。

    以上算是给大家提供了一种思路吧。
    欢迎提供方法3.

    在这里插入图片描述

    展开全文
  • 数据为对象数组,需要在页面加载时对第一个对象数组的grade重新赋值** index.js Page({ data: { list: [ { class: '数学', id: '1', name: "张三", grade:0, }, { class: '数学', id: '1', ...
  • 前言 1255: 打怪升级(Java),写这个题目程序时候,控制台提示如下错误: Exception in thread "main" java.lang....然后我调试才发现,这个对象数组居然是null,这我就不理解了,我明明写
  • 主要介绍了JavaScript数组对象赋值用法,涉及javascript用户交互及针对数组的排序技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 关于Java对象数组赋值的问题

    千次阅读 2019-12-18 12:18:49
    在写Java大作业时需要对对象数组赋值,而我的程序在赋值完后,我发现对象数组中的每个对象都相同。 定义对象数组 ...经过一番思考,突然想明白这个程序在对对象数组赋值时并不是真的赋值,而是把各个对象...
  • /* * 变量的解构赋值:从数组或者对象中提取数据,赋值给变量(多... * 数组的解构赋值: * let [ a, b ] = [ 1, 2 ] * 相当于重新定义了两个变量来接受等号右边的参数,定义的变量以下标为基础,对应右边数组内...
  • <script> //数组的解构赋值 let arr = [1, 2, 3]; // 传统方式 let a = arr[0]; let b = arr[1]; let c = arr[2]; //数组解构赋值,对应位置赋值 // 必须有初始化值 ...
  • function activeitySubmit(){ //模糊搜索id以schoolplan_two开头标签长度 var confCount = $('[id^=schoolplan_two]').length;...//声明一个数组 var a=new Aarray(); 推荐使用 var data=[]; for(var...
  • JS数组的赋值介绍

    2020-12-10 01:29:51
    这是因为将test赋值给arr实际上是将数组的引用赋值给arr,所以操作arr也同时会 改变源数组。 要实现数组克隆,可用以下方法: 代码如下:Array.prototype.clone=function(){ return this.slice(0);}
  • php 对象数组的赋值过程

    千次阅读 2016-01-07 11:48:47
    可见对象默认的赋值并非深度拷贝 {  ["a"]=>  array(1) {  ["a"]=>  string(1) "2"  } } object(A)#1 (1) {  ["a"]=>  int(3) } object(A)#1 (1) {  ["a"]=>  int(3) }。。浅...
  • 对象数组的随机赋值 浮点数的指定位数 换用思路进行对象数组的某一属性进行排序 现有Book类,定义如下: private String author;  private String ISBN;//书号  private double price;    public String ...
  • 什么是解构赋值:按照一定模式从数组或者对象中提取值,然后对变量进行赋值,这被称为解构赋值数组解构赋值 基本用法 下标对下标。 let [a,b,c]=[1,2,3]; let [a,[[b],c]=[1,[[2],3]]; 结果: 同时声明三个变量...
  • /** 1、基本数据赋值: */ data:{ showTip:false, contractForm:{}, types: [], }, this.setData({ 'showTip':true, "contractForm.days": 2, ...//(1) 固定下标:(给下标为1的guestList数组的checkStatus对象
  • 所谓解构赋值就是:按照一定模式,从数组对象中提取值,对变量进行赋值(先解析结构再进行赋值)。 对象的解构赋值 对象是通过属性名进行解构(是用最多解构赋值) 基本使用 // 创建一个对象 let obj = {...
  • 这个代码是面向对象学习代码, ... 对象数组题目: 定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int)。 创建20个学生对象,学号为1到20,年级和成绩都由随机数确定。 问题一:打印
  • Java中的数组引用赋值

    万次阅读 2019-09-20 17:39:01
    引用赋值不是简单的赋值操作,而是能够通过对对象b进行赋值操作从而对对象a进行修改值的行为。 //这是一种简单的将数组n中的值对应赋给数组num int i; for(i = 0; i < length; ++i) num[i] = n[i]; 在上述程序...
  • JavaScript 中对象数组的赋值是默认引用赋值的,使得改变对象时,原对象跟着改变, 如果你想要复制赋值,则必须要重新分配对象,使用如下代码即可避免此问题: 1、对象 Object.assign({}, object) let a = {'...
  • 对象数组传递赋值之引用传递

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

    千次阅读 2019-08-21 13:14:42
    给数组里对象进行赋值,如果不存在就添加新数据对象 var model = [] //newData是新的对象数组 model = Object.assign({}, model ,newData.data)
  • 创建对象数组,给数组赋值(两种理解思路) class Student{ String name; int age; } public class StudentTest{ Student []stu=new Student[5];//创建学生对象数组(其中元素是类一个对象) ...
  • JavaScript数组对象赋值 // 数组赋值 var oldArr = ['1','2','3','4']; var newArr = $.extend(true, {}, oldArr); // 对象赋值 var oldObj = {age: 10, name: 'th'}; var newObj = JSON.parse(JSON.stringify...
  • 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'}...
  • ES6中的数组解构赋值

    2018-11-07 11:34:01
    解构赋值语法是一个Javascript表达式,这使得可以将数据从数组对象提取到不同变量中(这段话是mdn中关于解构赋值的定义,注意这里定义,可以看出解构主要用在数组对象上)。 说白了就是解析等号两边结构,...
  • JS数组的赋值

    2013-10-26 23:42:00
    var test=[1,2,3,4,5,6,7]; var arr=test; arr.splice(2,1); alert(test);...这是因为将test赋值给arr实际上是将数组的引用赋值给arr,所以操作arr也同时会改变源数组。 要实现数组克隆,可以下方法:Arra...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,668
精华内容 3,467
关键字:

对象数组的赋值