首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将带有键的对象数组发送到API?

如何将带有键的对象数组发送到API?
EN

Stack Overflow用户
提问于 2019-08-24 01:06:29
回答 4查看 782关注 0票数 5

我有几个跨度:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<span class="first" data-id="1" />
<span class="second" data-id="4" />
<span class="second" data-id="2" />
<span class="third" data-id="5" />

以及对它们的行动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const spans = document.querySelectorAll('span');

const list = [];

spans.forEach(function(span) {
    if (typeof list[span.getAttribute('class')] === 'undefined') {
    list[span.getAttribute('class')] = [];
  }

  list[span.getAttribute('class')].push(span.getAttribute('data-id'));
});

console.log(list);
console.log(JSON.stringify(list));

但是JSON.stringify返回空数组。

如何计算给定跨度内出现的数据-id的数量-最简单的方法,然后再将其转换为string?我想把这些数据发送到API。

小提琴:https://jsfiddle.net/x7thc59v/

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-08-24 01:13:33

下面是一个正在工作的代码:使用object而不是数组来拥有键。使用var而不是const来修改变量;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const spans = document.querySelectorAll('span');

var list = {};

spans.forEach(function(span) {
    if (typeof list[span.getAttribute('class')] === 'undefined') {
    list[span.getAttribute('class')] = [];
  }

  list[span.getAttribute('class')].push(span.getAttribute('data-id'));
});

console.log(list);
console.log(JSON.stringify(list));
票数 2
EN

Stack Overflow用户

发布于 2019-08-24 01:23:36

如果您希望输出像这样的[{"first":["1"]},{"second":["4","2"]},{"third":["5"]}]

然后你就可以跟着这个阿帕罗克

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const spans = document.querySelectorAll('span');
const list = [];
spans.forEach(function(span) {
 const className = span.getAttribute('class');
 const valIndex = list.findIndex(val => val[className]);
 const hasVal = valIndex !== -1;
 if (className && hasVal) {
  const preVal = list[valIndex][className];
  list[valIndex][className] = preVal.concat(span.getAttribute('data-id'));
 } else if (className && !hasVal){
  list.push({[className]: [span.getAttribute('data-id')]});
 }
});
console.log(list);
console.log(JSON.stringify(list));

这里是工作小提琴

票数 2
EN

Stack Overflow用户

发布于 2019-08-24 01:13:08

我认为您希望list成为一个对象,就像您试图通过类名访问list的属性一样。

另外,与其使用forEach修改外部对象,不如在从document.querySelectorAll()调用返回的NodeList上使用Array.prototype.reduce

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const spans = document.querySelectorAll('span');   

//With Array.prototype.reduce
const list = Array.prototype.reduce.call(spans, function(acc, span) {
    const attr = span.getAttribute('class');
    const dataId = span.getAttribute('data-id');
    acc[attr] ? acc[attr].push(dataId) : (acc[attr] = [dataId]);
    return acc;
}, {});

console.log(list);
console.log(JSON.stringify(list));
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<span class="first" data-id="1" />
<span class="second" data-id="4" />
<span class="second" data-id="2" />
<span class="third" data-id="5" />

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57636535

复制
相关文章
如何将Flink应用的日志发送到kafka
产线环境上的Flink应用是长时运行的应用,日志量较大,通过flink web页面查看任务日志会导致浏览器卡死,通过日志排查问题非常不便。因此,需要将flink应用的日志发送到外部系统,方便进行日志检索
Eights
2020/09/10
2.4K0
如何将Flink应用的日志发送到kafka
如何将两个数组对象的相同属性进行操作
合并数组,然后通过obj[v.name]=obj[v.name]===undefined)判断其条件,将两个数组对象的相同属性将对应的type变为1。
马克社区
2022/07/11
4.2K0
js如何将带有分割符的字符串转化成一个n维数组
var str = “A-2-12”; var str1 = str.split(’-’); console.log(str1); var arr = str1.reverse().reduce((pre,cur,i) => { if(i==0) { pre.push(cur) return pre } return [cur,pre] },[]) console.log(arr) // [“A”[“B”,[“C”]]]
马克社区
2022/07/01
1.8K0
java对象数组 创建对象数组,初始化对象数组
对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组。 当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。 对象数组的定义和使用: 对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。 对象数组的声明形式是: 类名 对象数组名 [ ]; 为对象数组分配内存空间: 对象数组名=new 类名[数组长度];//注意 :此处不是构造方法了 可以将对象数组的声明和创建用一条语句来完成。例如:定义一个学生类对象数组,可以用下面的语句定义:Student stu[ ]=new Student[30]; stu [ ]是对象数组名,它所表示的数组一共有30个元素,每一个元素都是Student类的对象名,还没有实例化,所以还必须为每一个元素实例化。比如如下的过程: for(int i=0;i<stu.length;i++) stu[i]=new Student(); 实例化以后就可以使用每一个元素对象。 设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息
用户7886150
2021/02/01
3.9K0
js 对象转数组对象_js 对象数组
var obj = {name:”张三”,name:”李四”,name:”王五”};
全栈程序员站长
2022/09/30
31.7K0
数组转对象,对象转数组对不对_对象数组初始化
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
2.3K0
java对象数组 创建对象数组,初始化对象数组「建议收藏」
对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组。 当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。 对象数组的定义和使用: 对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。 对象数组的声明形式是: 类名 对象数组名 [ ]; 为对象数组分配内存空间: 对象数组名=new 类名[数组长度];//注意 :此处不是构造方法了 可以将对象数组的声明和创建用一条语句来完成。例如:定义一个学生类对象数组,可以用下面的语句定义:Student stu[ ]=new Student[30]; stu [ ]是对象数组名,它所表示的数组一共有30个元素,每一个元素都是Student类的对象名,还没有实例化,所以还必须为每一个元素实例化。比如如下的过程: for(int i=0;i<stu.length;i++) stu[i]=new Student(); 实例化以后就可以使用每一个元素对象。 设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息
全栈程序员站长
2022/08/31
2.3K0
数组/对象
数组 创建数组 var arr = new Array() var arr = [] 索引数组 arr[0] = '张三' arr[1] = 18 arr[2] = "男" console.log(arr) //["张三", 18, "男"] 关联数组 arr["name"] = '张三' arr["age"] = 18 arr["sex"] = "男" console.log(arr) //[name: "张三", age: 18, sex: "男"] 对象 创建对象 person = new
hss
2022/02/25
1.2K0
VR中对带有约束的物理对象的交互
在VR游戏中, 使用双手(控制器)直接对虚拟世界中的对象进行交互, 已经成为一种”标准化”的设计, 一切看起来能够用手去交互的物体, 都需要附合物理规则. 简单的物理对象, 通常只是一个刚体(Rigidbody), 这种只需要模拟重力和惯性运动就可以了, 最多再调节一下摩擦力, 弹性, 空气阻力等, 所以在技术上借助物理引擎的帮助是比较简单的. 稍微复杂一点儿的物理对象, 是带有约束(Constraint)关系的, 比如门, 抽屉, 转盘, 滑杆, 绳索等等. 这里以最常见的滑动和转轴约束进行一下分析,
逍遥剑客
2018/05/09
1.3K0
在Exce中使用带有动态数组公式的切片器
Excel中,有一些特别的函数仅计算可见行,例如SUBTOTAL函数和AGGREGATE函数。本文示例使用SUBTOTAL函数。
fanjy
2023/08/29
5220
在Exce中使用带有动态数组公式的切片器
对象数组的内存图解
对象数组的概述和案例(掌握) (1)对象数组的概述     数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。 (2)对象数组的案例     我有5个学生,请把这个5个学生的信息存储到数组中,并遍历学生数组,获取得到每一个学生的信息。
黑泽君
2018/10/12
1.8K0
如何将消息按指定时间发送到钉钉群里
根据项目组需求,组员每天都要写工作日报,但有时候忙起来,就忘记写日报这个事了,所以就需要一个通知消息来定点通知大家写日报。
wangmcn
2022/07/26
3K0
如何将消息按指定时间发送到钉钉群里
数组相关API
1.数组变异方法(修改原有数据) 在 Vue 中,直接修改对象属性的值无法触发响应式。当你直接修改了对象属性的值,你会发现,只有数据改了,但是页面内容并没有改变 变异数组方法即保持数组方法原有功能不变的前提下对其进行功能拓展 push() 往数组最后面添加一个元素,成功返回当前数组的长度 pop() 删除数组的最后一个元素,成功返回删除元素的值 shift() 删除数组的第一个元素,成功返回删除元素的值 unshift() 往数组最前面添加一个元素,成功返回当前数组的长度 splice() 有三
星辰_大海
2020/12/07
4440
java json数组转json对象_json对象数组
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
10K0
java json数组转json对象_json对象数组
js数组字符串转数组对象_js数组对象排序
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/01
15.4K0
JavaScript——数组对象
注意:当检测Array实例时, Array.isArray 优于 instanceof,因为Array.isArray能检测 iframes.
岳泽以
2022/10/26
1.5K0
如何将元素插入数组的指定索引?
数组是一种线性数据结构,可以说是编程中最常用的数据结构之一。修改数组是一种常见的操作,这里,我们来讨论如何在 JS 中数组的任何位置添加元素。
前端小智@大迁世界
2021/03/02
2.8K0
JavaScript数组对象
万能操作 数组.splice(开始位置,数量,操作),操作后原数组的内容改变第一个参数是指定从几号位置开始删除或添加  第二个参数是指定删除几个元素
十月梦想
2018/08/29
1.7K0
JavaScript|数组对象
讲到数组会有人问,什么是数组?数组就是有序数据的集合,在JavaScript中的数组元素允许属于不同的数据类型,用数组名和下标就可以唯一地确定数组中的元素。接下来将会详细的讲解一下JavaScript数组对象。
算法与编程之美
2020/09/08
1.7K0
java数组转对象_java之数组和对象的互转「建议收藏」
public static byte[] serialize(Object object) {
全栈程序员站长
2022/09/30
2.8K0

相似问题

如何将带有键/值的对象转换为对象数组?

325

如何将对象转换为带有符号键的哈希数组

10

JavaScript中带有对象键的数组

32

带有对象数组的类型记录键

11

将对象数组转换为带有键的数组的对象

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文