JavaScript 杂货清单

2024-02-01

我正在尝试创建一个杂货清单程序。现在我只是在做一些基本的功能。将商品添加到我的购物清单中、从购物清单中删除商品、查看购物清单以及标记我是否已拿起该商品。我困惑于如何让“标记”功能正常工作,这是我的代码:

var groceryList = [];

function add_item(item){
    groceryList.push(item);
}

function remove_item(item){
    for (var i = 0; i <= groceryList.length; i++){
        if (groceryList[i] === item) groceryList.splice(i, 1);
    }
}

function view_list(){
    for (var i = 0; i < groceryList.length; i++){
        if (groceryList.length == 0)
        return;
        else
        console.log("- " + groceryList[i]);
    }
}

function mark_item(item){
    for (var i = 0; i <= groceryList.length; i++){
        if (groceryList[i] == item) console.log("X " + groceryList[i]);
    }
}

view_list();
add_item('banana');
add_item('apple');
view_list();
add_item('testies');
view_list();
remove_item('testies');
view_list();
mark_item('apple');

显然当我运行mark_item功能它只是打印我放入的项目X在它的旁边。我想知道是否有人对我如何解决这个问题有建议?


您正在从能够将项目存储为简单的字符串转变为需要存储有关项目的一些上下文数据,即无论您是否已标记它们。您可以开始将项目存储为具有名称和标记标志的 javascript 对象。

function add_item(item){
    groceryList.push({
        name: item, 
        marked: false
    });
}
function view_list(){
    for (var i = 0; i < groceryList.length; i++){
        if (groceryList.length == 0)
        return;
        else
        // let's display marked off items differently 
        if (groceryList[i].marked){
            console.log("X " + groceryList[i].name);
        } else {
            console.log("- " + groceryList[i].name);
        }

    }
}
function mark_item(item){
    for (var i = 0; i <= groceryList.length; i++){
        if (groceryList[i].name == item) {
            // when we mark an item, we just set its flag
            groceryList[i].marked = true;
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 杂货清单 的相关文章

  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • Javascript 将对象推送为克隆

    我将 d3 用于交互式网络应用程序 我需要绑定的数据在交互过程中发生变化 并且由 JSON 变量中的一些选定对象组成 为此 我在 JSON 变量上使用了映射 并进行了一些查询来选择适当的对象 对象被推送到列表中 并且该列表被绑定为新数据 我
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • 我可以在 GWT 中使用第三方 Javascript 库吗

    例如穆工具 用 js 编码对我来说很舒服 但显然不适合所有人 你当然可以 最好的事情就是给自己写一些好看的JavaScript 覆盖类型 http code google com webtoolkit doc latest DevGuide
  • 如何将一个数组中的所有项目复制到另一个数组中?

    如何将数组的每个元素 其中元素是对象 复制到另一个数组中 以便它们完全独立 我不想更改一个数组中的元素来影响另一个数组 这里的关键是 数组中的条目是对象 并且 您不希望对一个数组中的对象的修改显示在另一个数组中 这意味着我们不仅需要将对象复
  • .points 不透明度/大小在三个.js 内

    我回来回答有关 points 的第二个问题 这次想知道如何将不透明度从 0 更改为 1 然后又回到距发射器的特定像素距离内 var particleCount 14 particles new THREE Geometry pMateria
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • 如何按元素添加两个 Rust 数组?

    这绝对是一个初学者问题 但我搜索了半个小时后找不到任何有用的东西 我有 Rust 1 7 0 和这段代码 type coord i64 3 add two coordinates vectors pointwise that is if z
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • 如果数组包含一个或多个相同值,则合并数组

    我有一个数组数组 a 1 2 3 3 4 5 6 7 8 8 9 9 10 我想合并包含一个或多个相同值的所有数组 所以 a 1 2 3 4 5 6 7 8 9 10 我正在努力寻找一种简洁的方法来解决这个问题 有任何想法吗 我相信这是正确
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • 如何在React中动态分配属性?

    这是一个有两个参数的函数 我要创建的标签的名称 具有以下属性的对象 Using React 我创建一个组件并将该元素渲染到 DOM 问题是我想向元素添加属性 但它不允许循环在元素内设置属性 var Element function elem
  • node.js 模块/导出系统:是否可以将模块导出为函数

    我想在 Dispatch js 中做这样的事情 function handle msg exports handle 这在调用index js中 var dispatch require Dispatch dispatch data 有任何
  • 为什么 call 比 apply 快那么多?

    我想知道是否有人知道why call比apply 在 Chrome 中 速度大约快 4 倍 在 Firefox 中快 30 倍 我什至可以制作自定义原型 apply2 在大多数情况下 运行速度是apply 这个想法取自角度 Function
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • vuejs中如何获取组件编译后的html内容

    我有一个这样的组件
  • 如何在 React Native 中使用相同的 Firebase 数据库在两个应用程序之间进行通信?

    我有两个不同的应用程序使用相同的实时数据库 在第一个应用程序中 我发送的订单包含一些要保存在数据库中的数据字段 在另一个应用程序中 我只添加一个侦听器 firebase database ref userOrder currentUser

随机推荐

  • Eclipse - Docker 集成

    我正在寻找一种将 Docker 容器与 Eclipse 平台集成的方法 我想在容器内运行所有构建 测试 调试命令 并在持续集成构建和稍后的生产中使用相同的容器 我看到的最简单的方法就是配置自定义命令 但除了权限问题 docker 必须以 s
  • 如果布尔属性为 true,则生成字符串(karma 对应于 qi::matches)

    想象一下 我们想要使用 Boost Spirit 解析并生成简单的 C 成员函数声明 Qi 语法可能如下所示 function type gt id gt gt matches const 这意味着 该函数是否const存储在一个bool
  • 通过递归查找数组中最大的正整数

    我决定以递归方式实现一个非常简单的程序 看看 Java 处理递归 的效果如何 但结果有点短 这就是我最终写的 public class largestInIntArray public static void main String arg
  • Google Maps API v3 SVG 标记消失

    我正在使用 SVG 路径表示法来使用 Google Maps API v3 创建标记和折线 有时 添加一些标记后 它们就会停止在地图上显示 如果我平移地图 即使只是 1 像素 它们也会再次显示 SVG markers stop showin
  • StackTrace 类方法在发布模式下不起作用

    下面是我用来记录错误详细信息的代码 StackTrace sTrace new StackTrace true string functionname Environment NewLine MethodName sTrace GetFra
  • 禁用 apache mod_proxy_balancer 上的粘性

    我想配置 Apache Web Server 以满足以下要求 在 server1 工作时访问它 仅当server1没有响应时才访问server2 当server1响应时 再次访问server1 为此 我尝试使用 mod proxy bala
  • 使用 Kotlin 序列化反序列化通用对象

    我正在尝试用以下方式替换 Gson 库科特林序列化 https github com Kotlin kotlinx serialization处理 JSON 序列化 反序列化 我在反序列化通用对象时面临一些问题 我设置了一个简单的示例来说明
  • 比较 GIT 裸存储库和 bitbucket 存储库

    如何确保我的裸存储库和我的 bitbucket 存储库相同 我做的第一件事就是查看日志 但这可能还不够 对吗 创建本地存储库 为您的裸存储库添加远程 为您的 bitbucket 存储库添加远程 从两个存储库中获取 验证相应的分支是否指向相同
  • 如何在 Highcharts 中创建堆积图图例的表格?

    这是 highchart 中堆栈图的 javascript 代码 legend align right x 70 verticalAlign top y 20 floating true backgroundColor Highcharts
  • 如果脚本失败则引发异常

    我有一个 python 脚本 tutorial py 我想从文件 test tutorial py 运行此脚本 该文件位于我的 python 测试套件中 如果tutorial py执行没有任何异常 我希望测试通过 如果在执行tutorial
  • 自动从启动屏幕快速 UI 导航到另一个屏幕,并带有延迟时间

    我是 IOS 和 Swift UI 的新手 在启动屏幕后无法导航到登录屏幕 我如何导航到登录屏幕 请帮帮我 我真的很感谢你们的所有回答 import SwiftUI import Dispatch struct SplashScreen V
  • 将docker容器中运行的tomcat webapp连接到mysql

    我有 mysql 服务器在 centos 主机上运行 我想在同一主机的 docker 容器内的 tomcat 中部署我的战争 知道如何从容器内部连接 mysql 吗 以下是从应用程序 tomcat 连接到数据库 mysql 的操作 有两种方
  • Rails、Slicehost、Capistrano - 部署端口问题

    当我尝试通过以下方式部署我的应用程序时 出现端口错误 cap deploy cold 错误 ssh connect to host domain com port 22 Connection refused 我的deploy rb 在适当的
  • ASP.NET Core 2.2 Razor 页面中的自定义路由

    我在 ASP NET Core 2 2 应用程序中为 Razor Pages 设置路由约定时遇到问题 我正在从传统 MVC 迁移到 Razor Pages 我正在使用文档中建议的标准页面文件夹结构 但我想稍微自定义生成的路由 例如 在 Pr
  • 为什么我的 Eclipse 一直没有响应? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用 Eclipse 有时它会冻结并停止响应 其他人也有遇到同样的状况吗 当我点击一行代码时通常会发生这种情况 无论是 Java
  • ./studio.sh 之后 Android Studio 错误

    After studio sh在终端中我收到此错误 tools jar 不在 android studio 类路径中请确保JAVA HOME指向 JDK 而不是 JRE 我谷歌了一下 每个人都这么说 您需要将环境变量设置为 JDK 路径而不
  • MouseEnter WPF 上的发光效果

    我是 WPF c 新手 我需要使用图像控制周围的发光效果triggers 我怎样才能做到发光效果mouse enter事件 我想按照我的风格使用你的答案 我的效果是
  • Facebook 登录 onClick - Javascript

    我的网站上有这段代码 Facebook 登录对话框是在我的页面加载时显示的 而不是在用户单击锚标记时显示的
  • 如何在 Ruby 中逐行读取大型文本文件并将该流逐行追加到文件中?

    假设我想将几个大文件合并为一个 然后uniq 那个 光是这个就可能需要一秒钟的时间 我的理解是File readlines 将所有行加载到内存中 有没有办法逐行读取它 有点像node jspipe 系统有效吗 Ruby 的一大优点是您可以在
  • JavaScript 杂货清单

    我正在尝试创建一个杂货清单程序 现在我只是在做一些基本的功能 将商品添加到我的购物清单中 从购物清单中删除商品 查看购物清单以及标记我是否已拿起该商品 我困惑于如何让 标记 功能正常工作 这是我的代码 var groceryList fun