当前位置: 首页 > news >正文

JavaScript——属性的增删改查

目录

任务描述

相关知识

属性的获取

方式一

方式二

属性的修改与新增

删除属性

编程要求

任务描述

Luma Restaurant 以前的财务人员在统计销售额的时候不小心把数据弄错了,现在的财务人员想通过一个 JavaScript 函数方便的修改数据,并署上自己的名字,请你帮助她完成这个任务吧!   本关任务:根据本小结内容,完成 JavaScript 对象属性值的获取和修改。

相关知识

在 Java 中,当实体类建立以后,类的属性只能获取与修改,不能增加与删除。但是因为 JavaScript 是动态类型的语言,JavaScript 中对象的属性具有增删改查所有的操作。

属性的获取

方式一

属性的获取有两种方式,一种是使用.符号,符号左侧是对象的名字,符号右侧是属性的名字,如下:

var student = {name:"Alice",gender:"girl"};
console.log(student.name);    // 输出Alice

这种情况下属性名必须是静态的字符串,即不能是通过计算或者字符串的拼接形成的字符串。

方式二

另外一种是使用[""]符号,符号的左边是对象的名字,双引号中间是属性的名字,这种情况下属性名可以是一个表达式,只要表达式的值是一个字符串即可。如下:

var student = {name:"Alice",gender:"girl"};
console.log(student["name"]);    / /输出Alice

有两种情况必须使用第二种方式:

  • 属性名含有空格字符,如student["first name"],这时不能用student.first name代替,编译器无法解释后者;

  • 属性名动态生成,比如用for循环获取前端连续 id 的值,这种 id 名之间一般有特定关系。如下面的例子:

    for(int i = 0;i < 5;i ++) {console.log(student["id"+i]);
    }

    属性的修改与新增

    属性的修改指修改已有属性的值,这个直接用赋值符号即可。   属性的新增与修改在形式上完全相同,区别仅在于编译器会根据属性的名字判断是否有该属性,有则修改,没有则新增。

var student = {name:"Kim",age:21
};
student.age = 20;//修改属性,覆盖了原来的值21
student.gender = "female";//新增属性gender

删除属性

JavaScript 中的属性还可以删除,这在其他的面向对象语言如 Java 或者 C++ 中是无法想象的,删除通过delete运算符实现。删除成功返回布尔型true,删除失败也是返回true,所以在删除之前需要判断一个属性是否存在,这个内容将在下一关讲解。

需要注意的是,对象只能删除自己特有的属性,而不能删除继承自原型对象的属性。同时,对象在删除属性时,要防止删除被其他对象继承的属性,因为这样会导致程序出错。

var Store = new Object();
Store.name = "lofo Market";
Store.location = "NO.13 Five Avenue";
console.log(delete Store.name);    // 删除成功,输出true
console.log(Store.name);    // 已删除,返回undefined
delete Store.prototype;    // 删除失败,非自有属性

编程要求

请补全右侧 Begin 和 End 之间的代码片段,使函数reviseAttribute(reviser,date,attvalue) 具备根据传入参数修改store对象的属性的功能,具体要求如下:

  • 如果调用函数reviseAttribute(reviser,date,attvalue)并传入值 Alice,1,1000那么对应storeday1属性的值就修改为 1000,accountant属性的值修改为Alice
    var store = {name:"Luma Restaurant",location:"No 22,Cot Road",accountant:"Vivian Xie",day1:3200,day2:3200,day3:3200,day4:3200,day5:3200,day6:3200,day7:3200,day8:3200,day9:3200,day10:3200
    }
    function reviseAttribute(reviser,date,attValue) {//Convert string to integerattValue = parseInt(attValue);//请在此处编写代码/*********begin*********/store["day"+date] = attValue;store.accountant = reviser;/*********end*********/var totalSales =  store["day1"]+store["day2"]+store["day3"]+store["day4"]+store["day5"]+store["day6"]+store["day7"]+store["day8"]+store["day9"]+store["day10"];return totalSales+store.accountant;
    }

相关文章:

JavaScript——属性的增删改查

目录 任务描述 相关知识 属性的获取 方式一 方式二 属性的修改与新增 删除属性 编程要求 任务描述 Luma Restaurant 以前的财务人员在统计销售额的时候不小心把数据弄错了&#xff0c;现在的财务人员想通过一个 JavaScript 函数方便的修改数据&#xff0c;并署上自己的…...

51单片机第15步_串口多机通讯使用CRC8校验

本章重点介绍串口多机通讯使用CRC8校验。 数据格式:"$123xxxx*crc8\r\n"; 如:"$1234567890ABCDEF*06\r\n" 如:"$1231234567890*31\r\n" crc8是CRC校验值,为十六进制的ASCII码,不包含$和校验值前面的那个* #include <REG51.h> //包含…...

WPF----进度条ProgressBar(渐变色)

ProgressBar 是一种用于指示进程或任务的进度的控件&#xff0c;通常在图形用户界面&#xff08;GUI&#xff09;中使用。它提供了一种视觉反馈&#xff0c;显示任务的完成程度&#xff0c;帮助用户了解任务的进展情况。 基本特性 Minimum 和 Maximum 属性&#xff1a; 这些属…...

Apipost接口测试工具的原理及应用详解(四)

本系列文章简介&#xff1a; 随着软件行业的快速发展&#xff0c;API&#xff08;应用程序编程接口&#xff09;作为不同软件组件之间通信的桥梁&#xff0c;其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此&#xff0c;对API进行严格的测试成为…...

【图论】200. 岛屿问题

200. 岛屿问题 难度&#xff1a;中等 力扣地址&#xff1a;https://leetcode.cn/studyplan/top-100-liked/ 问题描述 给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&…...

AI学习指南机器学习篇-随机森林的优缺点

AI学习指南机器学习篇-随机森林的优缺点 引言 机器学习是人工智能领域的重要分支&#xff0c;其中随机森林(Random Forest)算法以其高性能和广泛应用而备受瞩目。然而&#xff0c;就像任何其他算法一样&#xff0c;随机森林也有其优缺点。本文将深入探讨随机森林算法的优势和…...

基于boost::beast的http服务器(上)

文章目录 1.beast网落库介绍2.相关类及api3.异步读写的处理3.1异步写案例3.2异步读案例 1.beast网落库介绍 Beast网络库是一个基于Boost库的C网络库&#xff0c;特别用于开发高性能的网络应用程序。它提供了一组易于使用的API&#xff0c;主要用于处理HTTP和WebSocket协议&…...

深度学习之近端策略优化(Proximal Policy Optimization,PPO)

PPO(Proximal Policy Optimization,近端策略优化)是深度强化学习中的一种算法,属于策略梯度方法中的一种。PPO通过优化策略来最大化累积奖励,具有稳定性好、易于调参等优点,是目前广泛应用的一种深度强化学习算法。下面介绍PPO的基本原理和流程。 PPO基本原理 PPO算法的…...

用pycharm进行python爬虫的步骤

使用 pycharm 进行 python 爬虫的步骤&#xff1a;下载并安装 pycharm。创建一个新项目。安装 requests 和 beautifulsoup 库。编写爬虫脚本&#xff0c;包括获取页面内容、解析 html 和提取数据的代码。运行爬虫脚本。保存和处理提取到的数据。 用 PyCharm 进行 Python 爬虫的…...

重写功能 rewrite

Nginx服务器利用 ngx_http_rewrite_module 模块解析和处理rewrite请求&#xff0c;此功能依靠 PCRE(perl compatible regular expression)&#xff0c;因此编译之前要安装PCRE库&#xff0c;rewrite是nginx服务器的重要功能之 一&#xff0c;用于实现URL的重写&#xff0c;URL的…...

ISO19110操作要求类中/req/operation/operation-attributes的详细解释

/req/operation/operation-attributes 要求: 只有要素属性&#xff08;feature attributes&#xff09;可以通过‘observesValueOf’、‘triggeredByValuesOf’或‘affectsValuesOf’关联角色与要素操作&#xff08;feature operations&#xff09;关联。 具体解释 定义 要…...

访客(UV)、点击量(PV)、IP、访问量(VV)概念

1、https://www.cnblogs.com/QingPingZm/articles/13855808.htmlhttps://www.cnblogs.com/QingPingZm/articles/13855808.html...

C++系统编程篇——Linux第一个小程序--进度条

&#xff08;1&#xff09;先引入一个概念&#xff1a;行缓冲区 \r和\n \r表示回车 \n表示回车并换行 ①代码一 #include<stdio.h> #include<unistd.h> int main()…...

一个中文和越南语双语版本的助贷平台开源源码

一个中文和越南语双语版本的助贷平台开源源码。后台试nodejs。 后台 代理 前端均为vue源码&#xff0c;前端有中文和越南语。 前端ui黄色大气&#xff0c;逻辑操作简单&#xff0c;注册可对接国际短信&#xff0c;可不对接。 用户注册进去填写资料&#xff0c;后台审批&…...

【游戏引擎之路】登神长阶(五)

5月20日-6月4日&#xff1a;攻克2D物理引擎。 6月4日-6月13日&#xff1a;攻克《3D数学基础》。 6月13日-6月20日&#xff1a;攻克《3D图形教程》。 6月21日-6月22日&#xff1a;攻克《Raycasting游戏教程》。 6月23日-6月30日&#xff1a;攻克《Windows游戏编程大师技巧》。 …...

FireAct:使用智能体(agent)微调大语言模型

1.概述 近年来,针对语言模型(LMs)的研究致力于探索其与外部工具或环境互动的能力,以推进新型语言代理的发展。此类代理具备从环境反馈中汲取新知识、通过语言推理进行连续决策,以及借助自我反思提升任务解决能力的能力。工业界的进展,如ChatGPT插件,凸显了语言代理在实际…...

20240626让飞凌的OK3588-C开发板在相机使用1080p60分辨率下预览

20240626让飞凌的OK3588-C开发板在相机使用1080p60分辨率下预览 2024/6/26 15:15 4.2.1 全编译测试 在源码路径内&#xff0c;提供了编译脚本 build.sh&#xff0c;运行该脚本对整个源码进行编译&#xff0c;需要在终端切换到解压 出来的源码路径&#xff0c;找到 build.sh 文件…...

python数据分析——数据分类汇总与统计

数据分类汇总与统计 前言一、Groupby分类统计语法按列分组示例一示例二示例三 遍历各分组示例 使用字典和Series分组示例 使用函数分组示例 二、数据聚合groupby的聚合函数示例一示例二 逐列及多函数应用示例一示例二 返回不含行索引的聚合数据示例 三、一般性的“拆分-应用-合…...

iOS17系统适配

iOS17 新功能 文章目录 iOS17 新功能iOS17支持哪几款机型Xcode15新特性iOS17-开发适配指南 横屏待机 在iOS 17中&#xff0c;还带来了横屏待机功能&#xff0c;苹果将这个新功能命名为“Standby”模式&#xff0c;为 iPhone 带来了全新的玩法。iPhone启用之后&#xff0c;默认情…...

树洞陪聊陪玩交友程序系统源码,解锁交友新体验

在繁忙的都市生活中&#xff0c;你是否渴望找到一片属于自己的秘密花园&#xff0c;倾诉心声、分享快乐&#xff1f;今天&#xff0c;就让我带你走进这片名为“树洞”的神秘之地&#xff0c;感受陪聊陪玩交友的全新魅力&#xff01; &#x1f333;树洞陪聊陪玩交友程序系统 你…...

SAMD51平台CAN FD驱动:零拷贝、位定时计算与FreeRTOS集成

1. 项目概述ACANFD_FeatherM4CAN 是专为 Adafruit Feather M4 CAN Express 开发板设计的高性能 CAN FD&#xff08;Controller Area Network with Flexible Data&#xff09;驱动库。该库直接面向硬件抽象层&#xff0c;深度适配 SAMD51 微控制器内置的双 CAN FD 模块&#xff…...

维纳滤波语音信号降噪Matlab程序含报告 包含6页文档报告。 使用了维纳滤波的技术去除高斯噪...

维纳滤波语音信号降噪Matlab程序含报告 包含6页文档报告。 使用了维纳滤波的技术去除高斯噪声&#xff0c; 程序可以直接运行&#xff0c;附带声音。 无需多余操作&#xff0c;点击运行即可。 程序经过多次测试&#xff0c;包成功运行&#xff0c;附带运行操作视频。最近在折腾…...

手搓LabVIEW声音采集系统——从调参到装X全攻略

Labview程序开发——声音采集系统 基于 Labview软件&#xff0c;以声卡为数据采集设备开发数据采集处理系统。 系统功能应包括: 1)声卡参数设置:包括设备ID号&#xff0c;采样模式&#xff0c;每通道采样点 数&#xff0c;采样率&#xff0c;通道数等参数设置; 2) 文件操作:实现…...

从‘拍糊了’到‘秒对焦’:深入拆解手机AF(自动对焦)与VCM马达工作原理

从‘拍糊了’到‘秒对焦’&#xff1a;深入拆解手机AF&#xff08;自动对焦&#xff09;与VCM马达工作原理 你是否曾在拍摄孩子奔跑的瞬间、宠物跳跃的刹那&#xff0c;或是夜景中闪烁的霓虹时&#xff0c;发现手机镜头反复"拉风箱"、对焦迟疑&#xff0c;最终错失精…...

InnoDB的“身体结构”:页、Buffer Pool与Redo Log的底层奥秘

欢迎来到MySQL InnoDB存储引擎的“解剖室”&#xff1b;很多人每天都在写SQL&#xff0c;却从未见过数据在磁盘上真正的模样。当面试官问&#xff1a;“为什么InnoDB比MyISAM快&#xff1f;”或者“数据库宕机了&#xff0c;数据是怎么恢复的&#xff1f;”如果你只能回答“因为…...

bb_imu:嵌入式多IMU统一驱动库与自动识别方案

1. 项目概述bb_imu是由 BitBank Software, Inc. 开发并维护的嵌入式惯性测量单元&#xff08;IMU&#xff09;统一驱动库&#xff0c;专为资源受限的微控制器平台&#xff08;如基于 ARM Cortex-M 系列的 STM32、ESP32、nRF52&#xff0c;以及 Arduino AVR 架构&#xff09;设计…...

嵌入式开发常见问题与调试技巧

嵌入式开发中的常见问题与解决方案1. 开发过程中的典型挑战1.1 软件层面的常见问题在嵌入式软件开发中&#xff0c;bug的出现是不可避免的。开发者需要掌握系统化的调试方法&#xff1a;状态机编程&#xff1a;对于复杂的控制逻辑&#xff0c;采用状态机设计模式可以显著提高代…...

Rivets.js格式化器深度解析:自定义数据转换和业务逻辑处理

Rivets.js格式化器深度解析&#xff1a;自定义数据转换和业务逻辑处理 【免费下载链接】rivets Lightweight and powerful data binding. 项目地址: https://gitcode.com/gh_mirrors/ri/rivets Rivets.js是一个轻量级且功能强大的数据绑定库&#xff0c;它提供了灵活的格…...

Vue项目实战:5分钟搞定ECharts与高德地图(AMap)的完美结合

Vue项目实战&#xff1a;5分钟实现ECharts与高德地图的深度整合 最近在开发一个物流数据可视化平台时&#xff0c;遇到了一个典型需求&#xff1a;如何在地图上动态展示全国各区域的订单流向&#xff1f;经过反复尝试&#xff0c;发现ECharts与高德地图的组合是最佳解决方案。本…...

从数据清洗到游戏开发:C++ std::string替换函数的5个意想不到的妙用

从数据清洗到游戏开发&#xff1a;C std::string替换函数的5个意想不到的妙用 在C开发者的日常工作中&#xff0c;std::string的替换操作常被视为基础技能&#xff0c;但它的潜力远不止于简单的文本处理。当我们将视线投向更广阔的领域——从游戏开发到数据工程&#xff0c;从安…...