简体   繁体   English

如何从 DOM 元素创建具有键和值的对象数组?

[英]How to create array of objects with key & value from DOM element?

How can I create an array of objects like this?如何创建这样的对象数组?

let cars = [
  {
    color: "purple",
    type: "minivan",
    capacity: 5
  },
  {
    color: "red",
    type: "suv",
    capacity: 5
  },
  {
    ...
  },
  ...
]

 let cars = []; $(".car").each(function() { var color = $(this).data('color'); var type = $(this).data('type'); var capacity = $(this).data('capacity'); cars.push(); });
 .car { background: gold; padding: 10px; margin: 6px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="car" data-color="purple" data-type="minivan" data-capacity="5"> Car 1</div> <div class="car" data-color="red" data-type="suv" data-capacity="5"> Car 2</div> <div class="car" data-color="green" data-type="sedan" data-capacity="2"> Car 3</div>

To achieve what you require you can use map() to build an array from all the data attributes on the elements:为了实现您的要求,您可以使用map()从元素上的所有data属性构建一个数组:

 let cars = $('.car').map((i, el) => el.dataset).get(); console.log(cars);
 .car { background: gold; padding: 10px; margin: 6px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="car" data-color="purple" data-type="minivan" data-capacity="5"> Car 1</div> <div class="car" data-color="red" data-type="suv" data-capacity="5"> Car 2</div> <div class="car" data-color="green" data-type="sedan" data-capacity="2"> Car 3</div>

You are doing it right, you need to push the elements objects into the array你做得对,你需要将元素对象推入数组

 let cars = []; $(".car").each(function() { var color = $(this).data('color'); var type = $(this).data('type'); var capacity = $(this).data('capacity'); cars.push({color, type, capacity}); }); console.log(cars)
 .car { background: gold; padding: 10px; margin: 6px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="car" data-color="purple" data-type="minivan" data-capacity="5"> Car 1</div> <div class="car" data-color="red" data-type="suv" data-capacity="5"> Car 2</div> <div class="car" data-color="green" data-type="sedan" data-capacity="2"> Car 3</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何从对象数组映射键和值? - How to map key and value from array of objects? 从对象数组中按键创建对象数组 - Create array of objects by key from array of objects Javascript ES5:如何在不使用 Lodash 或 Underscore 的情况下按键分组并从键值对象的平面数组创建子对象 - Javascript ES5: How to Group By a key and create Sub objects from a flat array of key-value objects without using Lodash or Underscore 如何从键值数组中删除元素? - How to remove an element from a key value array? 如何从对象数组中创建一串键值对 object? - How to create a string of key-value pair object from an array of objects? 如何通过$ each函数中的选择器变量创建具有键/值对的对象数组? - How to create an array of objects with key/value pairs from selector variables in $each function? 如何从数组创建键值对? - How to create key value pair from an array? 如何从数组创建键值对 - how to create key value pair from an a array 如何根据DOM元素创建多维数组? - How to create multidimensional array depending on DOM element? 如何遍历对象数组匹配另一个数组中的公共元素并返回“名称”的键值 - How do I iterate over an array of objects match a common element from another array and return the key value for “name”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM