合并 JSON 对象数组并使用 Javascript 进行排序

2024-03-15

我有一个包含 12 个数组的 JSON 对象。国家不同地区。我正在尝试将此数组合并到选择下拉菜单中。 JSON 看起来像这样:

"latinamerica": [
        "Argentina",
        "Bolivia",
        "Brazil",
        "Chile",
        "Colombia",
        "Ecuador",
        "Paraguay",
        "Peru"
    ],
    "korea": ["South Korea"]

然后我调用 JSON:

    $.getJSON('js/countries.json', function(data) {

  var items = [];      

  items[0] = '<option value="0">Country</option>';

  $.each(data['latinamerica'], function(key, val) {
    items.push('<option value="'+ key +'">'+ val +'</option>');
  });
});

对对象中的每个数组执行此操作。问题是我想合并所有这些数组,按字母顺序对它们进行排序,但仍然保留它们关联的区域。所以本质上我会有一个包含所有国家/地区的下拉菜单,HTML 如下所示:

<option value="latinamerica">Argentina</option>
<option value="europe">Austria</option>

我尝试过执行 concat 但后来我丢失了数组名称。建议? TIA。


您基本上需要一个不同的“模型”来生成该“视图”:

var countries = [];
for (var region in data) {
  for (var i = 0, l = data[region].length; i < l; ++i) {  
    countries.push({ country: data[region][i], region: region });
  }
}

然后你排序:

countries.sort(function(a, b) {
  if (a.country < b.country) return -1;
  if (a.country > b.country) return 1;
  return 0;
});

然后你使用它:

var items = [];      

items.push('<option value="0">Country</option>');
for (var i = 0, l = countries.length; i < l; ++i) {
  items.push('<option value="'+ countries[i].region +'">'+ countries[i].country +'</option>');
}

(注意:所有这些代码都是untested).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合并 JSON 对象数组并使用 Javascript 进行排序 的相关文章

  • Ember.js 数组作为模型的属性

    干杯 我有一些模型 它的一个属性是一个数组 但由于某些原因 我在服务器上使用 mongoDB 并且它是嵌入式模型和 ember data 的问题 我不能做这样的事情 App Foo DS Model extend numbers DS ha
  • 如何在 Jest 测试中模拟 StatusBarManager.getHeight?

    我正在使用 expo 34 并且反应本机用户界面库 https www npmjs com package react native ui lib来自 wix 并且在为我的组件设置笑话测试时遇到问题 问题看起来出现在link https g
  • JQuery 验证表单数组中的重复项

    我想显示重复或不唯一的值的错误 但我的表单接受输入数组 我已经在 jsfiddle 上检查了这些问题 name week 失败但是name week 工作正常 问题1 https stackoverflow com questions 24
  • 将箭头添加到 Twitter Bootstrap 的下拉药丸中?

    我的 Twitter 引导下拉按钮成功工作 但我有一个小问题 这里的黑色导航栏 http twitter github com bootstrap javascript html dropdowns http twitter github
  • 如何防止在达到一定字符数后向文本区域输入内容?

    使用下面的代码 任何超过指定最大值的输入都将被删除 但这会产生一种效果 即键入字符后立即将其删除 我宁愿简单地阻止输入字符
  • JQuery _renderItem 没有被调用

    我正在尝试使用 renderItem 函数创建自定义 ui menu item 元素 但经过可能尝试后 我什至无法调用该函数 自动完成功能正在工作 但就像 renderItem 函数不存在一样 这是我的脚本部分
  • Django 模板变量从 {% for %} 循环到 Javascript

    这是一个迭代记录的 Django 模板 每条记录都包含一个由 JS 函数填充的 div 为了让 JS 知道要做什么 它需要从每次 for 循环迭代中获取一个变量并使用它 我不知道具体如何实现这一目标或是否可能 我不知道 也许记录在单独的 J
  • jQuery Datepicker:setDate 不是一个函数

    我目前正在尝试使内联日期选择器对象与日期输入交互 并且已经管理了除一件事之外的所有内容 当我尝试使用输入的更改事件时 它会抛出错误 Uncaught TypeError start widget setDate is not a funct
  • jQuery 面板滑块通过单击按钮打开但不会关闭

    我的页面上有一个按钮 可以使用 jquery 和 Modernizr 框架打开右侧面板 按钮位于屏幕最右侧 单击时 它会向左滑动并打开打开的面板 问题是 再次单击时它不会滑回到原来的位置 HTML div class cd panel fr
  • Flot 0.8.2 折线图 - 颜色错误

    我正在使用 Flot 折线图并设置它们的颜色 我发现了一个奇怪的错误 在前 3 种颜色之后 绘图对所有其他线条使用最后一种颜色 这不是正确的行为 更有趣的是图例显示了正确的颜色 这是一个已知的错误 var dataSet label d1
  • 如何让无限滚动发挥作用?

    我正在尝试让这个无限加载脚本在我的项目中工作 这是我的 HTML div div div class pagina div div class pagina div div class pagina div div class pagina
  • 是否可以从 webpack 中的文件名中删除特殊字符?

    长话短说 我的资产文件名中不能包含某些字符 例如连字符 我没有运气通过解析 webpack 文档来弄清楚是否可以使用正则表达式或类似的东西重命名文件 这样我就可以从我无法控制源文件名的 3rd 方包中删除任何连字符 我的超级天真的例子是这样
  • Javascript 替换为正则表达式无法正常工作

    我正在尝试使用正则表达式验证名称 正则表达式阻止用户连续输入 2 个空格或点 这是我的代码 function test input var regex A Za z 0 1 s 0 1 input value input value rep
  • 为数据集生成随机 JSON 结构排列

    我想生成 JSON 结构的许多不同排列作为同一数据集的表示 最好不需要对实现进行硬编码 例如 给定以下 JSON name smith occupation agent enemy humanity nemesis neo 应该产生许多不同
  • JavaScript 比较中应使用哪个等于运算符(== 与 ===)?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我在用着JSLint http en wikipedia org wiki JSLint
  • 谷歌地图绘制两点之间的路线

    我编写了这段无辜的 JavaScript 代码 它允许用户创建两个标记并绘制它们之间的路线 它不起作用 相反 它给出了一个奇怪的错误 Uncaught TypeError Cannot read property ya of undefin
  • 当 jQuery .remove() 用于删除脚本标签时,它是否会清除加载的 JavaScript?

    正如标题所示 如果我使用以下命令从 DOM 中删除脚本标签 scriptid remove javascript 本身是保留在内存中还是被清除了 或者 我完全误解了浏览器处理 javascript 的方式吗 这是很有可能的 对于那些对我提问
  • 如何使用 jQuery 和“this”捕获更改的表单元素值

    我有以下代码 每当我的 Web 表单中发生元素更改时 该代码都会起作用 我一直在纠结的是如何捕捉表单字段元素 id name and 改变值当更改事件被触发时 谁能帮我解决这个问题吗 Thanks JavaScript
  • ES6解构对象赋值函数参数默认值

    您好 我正在查看在传递函数参数时使用对象解构的示例对象解构演示 https developer mozilla org en US docs Web JavaScript Reference Operators Destructuring
  • 相当于 JavaScript 中 Ruby 的each_cons

    许多语言都曾提出过这个问题 但 javascript 却没有 Ruby 有方法Enumerable each cons https devdocs io ruby 2 5 enumerable method i each cons看起来像这

随机推荐

  • PHP在提交表单失败后保留表单信息

    你好 我正在 mvc 系统视图中构建一个表单 并且我希望保留所有插入的值 以防表单提交失败 如何做到这一点 我尝试过 字段示例
  • 点击鼠标绘制一个矩形

    可以用鼠标点击画一个矩形吗 我的代码到目前为止还不能工作 你能帮助我吗 private void panel1 MouseClick object sender MouseEventArgs e Graphics g this Create
  • 源码分析工具? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 C 和 C 的源代码分析和探索工具似乎非常缺乏 是否有任何工具可以用来收集有关 C 和 或 C 源文件的信息 cscope 完成了我需要的
  • 单元测试持久层 - Symfony

    我想在 Symfony2 中测试持久性 我想知道是否更好地模拟实体并提供给实体管理器 或者是否更好地模拟实体管理器并将实体传递给管理器 我的第一个选择是实体管理器抛出异常 而不是对象不是实体学说 如何在 PHPUNIT 中测试 symfon
  • 使用正则表达式或类似表达式更改 Chrome 中的当前 URL

    当在 Chrome 中输入已弃用的 URL 时 应根据正则表达式或类似表达式将其更改为更新的 URL 我想做以下事情 向系统输入一条规则 将 olddomain com 更改为 newdomain com 在 Chrome 中输入 oldd
  • 当插入符进入 contenteditable div 中的 span 元素时触发事件

    我有一个内容可编辑的 div 其跨度如下 div some span spanned span text div 我想知道是否有任何事件监听器可以附加到span元素本身可用于检测插入符是否在元素内部移动span元素 我并不是在寻找有听众的答
  • 在 Web 服务中使用 JSON 字节数组以及 application/x-www-form-urlencoded

    有3个问题 我正在使用 Java Restful Web 服务 请求是 HTTP POST 客户端如何发送 JSON 数据以及 application x www form urlencoded 的 MediaType 使用字节数组是否可以
  • 按 EditText 时的 TimePicker 对话框

    这个问题以前曾被问过 但当时的答案似乎不再适用于 Android Studio 或者我错过了一些东西 我希望当您按下编辑文本区域时显示一个 timePicker 对话框 以在 editText 中设置时间 然而 由于某种原因 普通键盘在按下
  • 使用自动热键捕获右键单击+左键单击;意外的行为

    我想捕获关键事件 按下鼠标右键 然后按下鼠标左键 自动热键没有问题 然而 我仍然无法让鼠标右键单独工作 1 这有效 RButton LButton Send X Return 按预期工作 如果我按下鼠标右键 然后按下鼠标左键 X 将发送到活
  • HTML5 语法验证

    我正在验证一些 HTML 并注意到一些我不熟悉的新错误 这些列表项会根据用户输入使用 JavaScript 进行填充 Element li缺少以下一项或多项属性 aria checked aria expanded aria valuema
  • R 中最快的列排序

    我有一个数据框full我想从中取出最后一列和一列v 然后我想对两列进行排序v以尽可能最快的方式 full从 csv 中读取 但这可以用于测试 包括一些真实性的 NA n lt 200000 full lt data frame A runi
  • 基本 CSS 功能在 IE8 中不起作用

    我在这里完全不知所措 我正在开发一个网站 需要支持大量使用 IE8 的用户 一切都可以在 IE9 及更高版本以及 Chrome Firefox 和 Safari 中运行 但我一生都无法获得基本的 CSS 例如高度属性 来在 IE8 中一致工
  • 如何创建从左下角到右上角的动态对角线?

    我创建了一个简单的布局 其中有三个可以交互的 div 一个是屏幕中间的徽标 另一个是使用 jQuery 将两个块移出屏幕 我用的是skewCSS 中应用度数转换的选项 我想根据屏幕应用一定的程度 因此该程度将正确应用于所有屏幕 视觉示例 h
  • 如何使用TabNavigator的tabBarComponent?标签栏不显示

    我正在尝试制作自己的自定义选项卡栏 似乎 tabBarComponent 是通过设置为我自己的组件来实现此目的的方法 使用下面的代码我的标签栏不会显示 const TabNav TabNavigator LaunchScreen scree
  • 查询SQL Server上存储过程的内容

    我正在探索一个遗留数据库系统 对其内部结构知之甚少 我想找到调用另一个存储过程的所有存储过程A 如何最好地做到这一点 我可以写这样的伪代码吗 select name from AllStoredProcedures as Asp where
  • 为什么 C++ 中必须声明函数,而 C 中则不然?

    所以我之前的一次考试有这个问题 到目前为止我一直在读你不需要任何语言的声明 哪个是对的 如果没有声明 C 会报错还是会运行 在涉及 C 和 C 的讨论中 函数声明 是一个相当模糊的术语 这些语言在这方面有很大不同 在C 语言中只有一种函数声
  • javascript、getelementsbyname 和焦点

    我正在尝试创建一个函数 该函数将查看用户名 如果无效 然后向用户发送警报 清除用户名字段 然后将用户名字段重新置于焦点中 我正在尝试使用 getElementsBynName 函数来完成这一切 除了让现场重新成为焦点之外 一切都在进行 我的
  • Theano.function 中“给定”变量的用途

    我正在阅读以下给出的逻辑函数的代码http deeplearning net tutorial logreg html http deeplearning net tutorial logreg html 我对之间的区别感到困惑inputs
  • 如何正确等待浏览器重排/重绘完成

    假设我有一个复杂的 HTML 组件 我想要为其设置动画 但每次需要设置动画时 都需要完成几件事 例如渲染新的 HTML 组件 设置高度 附加 css 类等 如果动画在浏览器重排 重绘过程中触发 这可能会导致动画不平滑 我可以使用 setTm
  • 合并 JSON 对象数组并使用 Javascript 进行排序

    我有一个包含 12 个数组的 JSON 对象 国家不同地区 我正在尝试将此数组合并到选择下拉菜单中 JSON 看起来像这样 latinamerica Argentina Bolivia Brazil Chile Colombia Ecuad