JS实现键值对遍历json数组功能示例

下面我将为您详细讲解“JS实现键值对遍历json数组功能示例”的完整攻略。

一、前置知识

在进行键值对遍历json数组的操作前,需要您先了解以下基础知识:

  1. JSON数组:JSON是一种轻量级的数据交换格式,通常使用JSON格式来传输数据,JSON数组即是由多个JSON对象组成的数组。

  2. for...in循环:用于遍历一个对象的所有可枚举属性,循环中可以获取到枚举属性的名称。

  3. Object.keys():用于获取对象的所有可枚举属性的名称,返回一个由属性名组成的数组。

二、实现步骤

现在,让我们来实现键值对遍历json数组的功能。下面是具体步骤:

  1. 首先,定义一个JSON数组,其中包含多个JSON对象,用于模拟真实场景。

js
const data = [
{
name: "John",
age: 30,
email: "john@example.com"
},
{
name: "Jane",
age: 25,
email: "jane@example.com"
},
{
name: "Jack",
age: 35,
email: "jack@example.com"
}
];

  1. 使用for...in循环遍历数组中每个JSON对象的可枚举属性,并输出它们的名称和值。

js
for (let i = 0; i < data.length; i++) {
const person = data[i];
for (let key in person) {
console.log(key + ": " + person[key]);
}
}

运行结果为:

name: John
age: 30
email: john@example.com
name: Jane
age: 25
email: jane@example.com
name: Jack
age: 35
email: jack@example.com

  1. 使用Object.keys()方法获取数组中第一个JSON对象的所有属性名称,并输出它们的名称和值。

js
const keys = Object.keys(data[0]);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
console.log(key + ": " + data[0][key]);
}

运行结果为:

name: John
age: 30
email: john@example.com

至此,我们已经实现了键值对遍历json数组的功能。

三、示例说明

在实际开发中,键值对遍历json数组的功能经常会被使用到。下面以两个实例来进一步说明:

示例1:表格渲染

假设我们要实现一个表格组件,需要从后台获取JSON数据,并根据数据渲染出一个表格。此时,键值对遍历json数组的功能就派上了用场。

假设我们从后台获取到的数据如下:

const data = [
   {
      name: "John",
      age: 30,
      email: "john@example.com"
   },
   {
      name: "Jane",
      age: 25,
      email: "jane@example.com"
   },
   {
      name: "Jack",
      age: 35,
      email: "jack@example.com"
   }
];

我们可以使用以下代码将数据渲染成一个表格:

function renderTable(data) {
   const table = document.createElement("table");
   // 表头
   const header = document.createElement("tr");
   const headerKeys = Object.keys(data[0]);
   for (let i = 0; i < headerKeys.length; i++) {
      const headerKey = headerKeys[i];
      const headerCell = document.createElement("th");
      headerCell.textContent = headerKey;
      header.appendChild(headerCell);
   }
   table.appendChild(header);
   // 表格内容
   for (let i = 0; i < data.length; i++) {
      const row = document.createElement("tr");
      const person = data[i];
      for (let key in person) {
         const cell = document.createElement("td");
         cell.textContent = person[key];
         row.appendChild(cell);
      }
      table.appendChild(row);
   }
   return table;
}

document.body.appendChild(renderTable(data));

渲染结果如下:

name age email
John 30 john@example.com
Jane 25 jane@example.com
Jack 35 jack@example.com

示例2:数据过滤

假设我们在一个电商网站中实现一个商品列表,能让用户根据商品的分类、价格、品牌等信息进行搜索和筛选。此时,键值对遍历json数组的功能也就派上用场了。

假设我们有如下的商品数据:

const products = [
   {
      name: "iPhone XR",
      brand: "Apple",
      category: "Electronics",
      price: 749,
      inStock: true
   },
   {
      name: "Samsung Galaxy S10",
      brand: "Samsung",
      category: "Electronics",
      price: 899,
      inStock: true
   },
   {
      name: "Nike Air Max 270 React",
      brand: "Nike",
      category: "Footwear",
      price: 161.97,
      inStock: false
   },
   {
      name: "Levi's 501 Original Fit Jeans",
      brand: "Levi's",
      category: "Clothing",
      price: 59.5,
      inStock: true
   }
];

以下代码实现了将商品数据渲染为一个列表,并允许用户根据商品的分类和品牌来进行过滤。

<input type="text" id="category-input" placeholder="Enter category name">
<div>
   <input type="checkbox" id="brand-apple"> <label for="brand-apple">Apple</label>
   <input type="checkbox" id="brand-samsung"> <label for="brand-samsung">Samsung</label>
   <input type="checkbox" id="brand-nike"> <label for="brand-nike">Nike</label>
   <input type="checkbox" id="brand-levis"> <label for="brand-levis">Levi's</label>
</div>
<ul id="product-list"></ul>

<script>
const categoryInput = document.getElementById("category-input");
const brandCheckboxes = document.querySelectorAll('[id^="brand-"]');
const productList = document.getElementById("product-list");

function renderList(products) {
   productList.innerHTML = "";
   for (let i = 0; i < products.length; i++) {
      const product = products[i];
      const item = document.createElement("li");
      item.textContent = product.name + " - " + product.price;
      productList.appendChild(item);
   }
}

function filterList() {
   const filteredProducts = products.filter(product => {
      const categoryMatch = categoryInput.value === "" || product.category.toLowerCase().includes(categoryInput.value.toLowerCase());
      const brandMatch = Array.from(brandCheckboxes).filter(checkbox => checkbox.checked).some(checkbox => checkbox.id.endsWith(product.brand.toLowerCase()));
      return categoryMatch && brandMatch;
   });
   renderList(filteredProducts);
}

filterList();

categoryInput.addEventListener("input", filterList);
brandCheckboxes.forEach(checkbox => checkbox.addEventListener("change", filterList));
</script>

使用上述代码,我们可以根据多个条件来对商品进行过滤,便于用户快速找到所需商品。

以上是两个关于键值对遍历json数组的简单示例。希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现键值对遍历json数组功能示例 - Python技术站

(0)
上一篇 2天前
下一篇 2天前

相关文章

  • 如何配置jsconfig.json文件解决VSCode中无法识别@别名引用的问题

    在现代web开发中,使用别名来引用模块已经成为了一个非常常见的做法。这样可以使得代码更加易读、易维护。然而,在使用VSCode进行开发时,如果不正确地配置jsconfig.json文件,就会遇到一些问题。 其中一个比较常见的问题是,在使用“@”符号来引用模块时,无法通过Ctrl + 点击来跳转到相应的文件。这是因为默认情况下,VSCode无法识别这个“@”符…

    JavaScript 2023年4月17日
    00
  • JSON+HTML实现国家省市联动选择效果

    下面我将详细讲解“JSON+HTML实现国家省市联动选择效果”的完整攻略,包括以下几个方面: 准备数据 首先,我们需要准备国家省市的数据,放在一个JSON格式的数据文件中。例如,我们可以创建一个名为”china.json”的文件,内容如下: { "country": [ { "name": "中国"…

    JavaScript 2天前
    00
  • js使用对象直接量创建对象的代码

    通过使用对象直接量,我们可以方便快捷地创建JavaScript对象。在这篇攻略中,我将详细介绍如何使用对象直接量来创建对象,并提供两个示例以帮助您更好地理解。 什么是对象直接量? JavaScript对象可以通过使用对象直接量的方法来创建。对象直接量使用一对花括号 {} 来包含对象的属性和方法。下面是一个使用对象直接量创建对象的示例代码: var perso…

    JavaScript 2天前
    00
  • 一种新的javascript对象创建方式Object.create()

    一种新的javascript对象创建方式Object.create() Object.create()是一个比较新的JavaScript方法,它可以创建一个新对象,并将原型设置为一个已有的对象。这意味着你可以使用一个现有对象作为新对象的原型,在新对象里共享原型的属性和方法。使用Object.create()的主要优点包括: 简化代码 更简单的原型继承 字面量…

    JavaScript 2天前
    00
  • JS数组去重的常用4种方法

    下面我就为大家详细讲解“JS数组去重的常用4种方法”的完整攻略。 一、JS数组去重的常用4种方法 数组去重是我们在JS开发中常会用到的一个功能,下面介绍4种去重方法。 1. Set Set是ES6新增的数据类型,它可以实现数组去重。 let arr = [1,2,2,3,3,4,5]; let result = […new Set(arr)]; cons…

    JavaScript 1天前
    00
  • javaScript产生随机数的用法小结

    下面是JavaScript产生随机数的用法小结: 1. Math.random()方法 在JavaScript中,我们可以使用Math.random()方法产生一个0到1之间的随机数。例如,在以下代码中,我们可以产生一个0到1之间的随机数,并将其乘以10得到一个0到10之间的随机数: let randNum = Math.random() * 10; con…

    JavaScript 1天前
    00
  • javascript基础语法学习笔记

    JavaScript基础语法学习笔记攻略 简介 JavaScript是一种脚本语言,经常用于web开发中的交互效果和动态呈现。学习JavaScript能够让开发者用更丰富的方式实现页面上的交互及动画。本篇攻略将介绍JavaScript的基础知识以及学习攻略。 基础语法 数据类型 首先了解JavaScript的数据类型,包括数字、字符串、布尔值、数组、对象、n…

    JavaScript 2023年5月18日
    00
  • JS之小练习代码

    下面我会详细讲解一下从头到尾如何完成“JS之小练习代码”的完整攻略,包括准备工作、代码实现以及注意事项等。 准备工作 在开始写代码之前,我们需要进行一些准备工作。 在电脑上安装一个文本编辑器,比如VS Code。 创建一个新的HTML文件,在文件中引入JS代码。 在创建之前,我们还需要确定需要实现的小练习。 实现过程 以下是一个实现小练习代码的示例: 1. …

    JavaScript 1天前
    00
  • JavaScript实现将数组中所有元素连接成一个字符串的方法

    实现将数组中所有元素连接成一个字符串的方法有以下两种: 方法一:Array.prototype.join() JavaScript中可以使用Array.prototype.join()函数将数组中的所有元素连接成一个字符串。 使用格式:Array.join(separator) 参数说明:- separator:可选参数,指定分隔符,将数组中的元素连接成字符…

    JavaScript 1天前
    00
  • JavaScript基本的输出和嵌入式写法教程

    JavaScript基本的输出和嵌入式写法教程 简介 JavaScript 是一种脚本语言,广泛应用于 Web 开发中。在这篇教程中,我们将讲解 JavaScript 的基本输出和嵌入式写法,以帮助初学者理解 JavaScript 中的语法规则。 输出 JavaScript 在 JavaScript 中,可以使用 console.log() 函数来输出内容。…

    JavaScript 2023年5月18日
    00