JavaScript 通过数组对JSON key字段进行排序

news/2025/2/12 12:39:14/

这里我以vue为例 不过json排序用的js方式 任何前端项目都可以通过js完成

我们组件代码现在是这样的

<template><div><div v-for = "item in navCateList" :key = "item.id">{{ item.name }}</div></div>
</template><script>
export default {data() {return {navCateList: {"activity": {id: 1,name: "活动"},"integral": {id: 2,name: "积分"},"inventory": {id: 3,name: "清单"},"haveUndueDiscussionOverSth": {id: 4,name: "说事"}}};},created() {for(let key in this.navCateList) {console.log(key)}},
};
</script>

运行代码
在这里插入图片描述
可以看到 现在的顺序 和我们定义的是一样的
但是 有些时候 我们有一些特殊的排序需求
但我们又不方便动之前的数据 我们就可以定义一个排序的数组来整理json

例如 我们现在要改成
积分 说事 清单 活动
这样的顺序 我们就可以先整理一个这样的数组
在这里插入图片描述
这里 我们定义了一个数组 里面存储的是json的key
顺序就是我们之前说的

然后 我们编写代码

this.navCateList = Object.fromEntries(Object.entries(this.navCateList).sort((a, b) => this.arr.indexOf(a[0]) - this.arr.indexOf(b[0]))
)
for(let key in this.navCateList) {console.log(key)
}

我们通过 this.arr 对this.navCateList进行排序
在这里插入图片描述
运行之后 我们看json的顺序就很完美了
在这里插入图片描述
但这里需要强调 如果你直接用 console.log 在控制台打印整个json
在这里插入图片描述
这就会按首字母排序了 会影响大家的判断 所以 建议 看排序 还是 用循环看 因为循环的顺序才是最后渲染到界面的效果
在这里插入图片描述


http://www.ppmy.cn/news/1157871.html

相关文章

计算机算法分析与设计(11)---贪心算法(活动安排问题和背包问题)

文章目录 一、贪心算法概述二、活动安排问题2.1 问题概述2.2 代码编写 三、背包问题3.1 问题描述3.2 代码编写 一、贪心算法概述 1. 贪心算法的定义&#xff1a;贪心算法是指在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以…

Java集合框架之Vector源码分析

文章目录 简介为什么是线程安全的&#xff1f;增删改查 扩容总结 简介 Java集合体系中的一个线性集合&#xff0c;底层原理其实和ArrayList基本一致。关于Vector问到的最多的面试题&#xff1a;ArrayList和Vector又什么区别&#xff1f; 通常的回答&#xff1a; Vector是线程…

c语言从入门到实战——C语言数据类型和变量

C语言数据类型和变量 前言1. 数据类型介绍1.1 字符型1.2 整型1.3 浮点型1.4 布尔类型1.5 各种数据类型的长度1.5.1 sizeof操作符1.5.2 数据类型长度1.5.3 sizeof中表达式不计算 2. signed 和 unsigned3. 数据类型的取值范围4. 变量4.1 变量的创建4.2 变量的分类 5. 算术操作符&…

linux之shell脚本练习

以下脚本已经是在ubuntu下测试的 demo持续更新中。。。 1、for 循环测试&#xff0c;&#xff0c;&#xff0c;Ping 局域网 #!/bin/bashi1 for i in {1..254} do# 每隔0.3s Ping 一次&#xff0c;每次超时时间3s&#xff0c;Ping的结果直接废弃ping-w 3 -i 0.3 192.168.110.$i…

day08-注册功能、前端登录注册页面复制、前端登录功能、前端注册功能

1 注册功能 补充(开放文件夹内) 2 前端登录注册页面复制 4 前端注册功能 1 注册功能 # 分析前端&#xff1a;携带数据格式 {mobile:,code:,password}后端&#xff1a;-1 视图类---》注册方法-2 序列化类---》校验&#xff0c;保存&#xff08;表中字段多&#xff0c;传的少---…

BIM轻量化技术简介

BIM轻量化技术是指在工程建筑的BIM模型建立之后&#xff08;利用专业的BIM建模软件&#xff0c;比如Autodesk Revit, Bentley MicroStation, DS Catia等&#xff09;&#xff0c;通过对BIM模型的压缩处理等技术手段&#xff0c;让BIM可以在各类WEB浏览器、移动App上被使用的技术…

LeetCode 260. 只出现一次的数字 III:异或

【LetMeFly】260.只出现一次的数字 III 力扣题目链接&#xff1a;https://leetcode.cn/problems/single-number-iii/ 给你一个整数数组 nums&#xff0c;其中恰好有两个元素只出现一次&#xff0c;其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返…

【环境搭建】linux docker安装nexus3

1、shell输入 docker run -dti \--nethost \--namenexus3 \--privilegedtrue \--restartalways \--ulimit nofile655350 \--ulimit memlock-1 \--memory1G \--memory-swap-1 \-e INSTALL4J_ADD_VM_PARAMS"-Xms512m -Xmx512m -XX:MaxDirectMemorySize1g" \-v /etc/lo…