如何从对象文字数组中切片数组?

2024-05-01

我有这个数组,其中每个索引都包含一个对象文字。所有对象字面量都具有相同的属性。某些对象文字对于给定属性具有相同的值,我想创建一个包含only那些对象文字。

我的想法是对数组进行排序,并将其切片成一个新数组......

这是数组:

var arr = [];

arr[0] =
{
    country: "United States",
    num: 27
};

arr[1] =
{
    country: "Australia",
    num: 5
};

arr[2] =
{
    country: "United States",
    num: 7
};


因此,我想创建一个新数组,仅包含属性所在的对象country是“美国”。到目前为止,这是我的疯狂想法,但行不通:

function getNewArray(arr)
{
    var arr2 = [];

    for(var key in arr)
    {
        for(var i = 0; i < arr.length - 1; i++)
        {
            if(arr.hasOwnProperty(key) && arr[i].name == arr[i + 1].name)
            {
                    arr2[i] = arr.slice(key);
            }
        }
    }

    return arr2;
}

var arr3 = getNewArray(arr).sort();

“我想创建一个新数组,仅包含属性国家/地区为“美国”的对象”

这正是Array.filter() method https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter is for:

var filteredArray = arr.filter(function(val, i, a) {
                                  return val.country==="United States";
                    });

请注意,.filter()该方法在版本 9 之前的 IE 中不可用,但我上面链接到的 MDN 页面向您展示了如何实现它,因此阅读该页面本身应该可以回答您的问题。

另请注意,在问题的(非工作)代码中,您的两个for循环基本上彼此做相同的事情,因为它们都在迭代arr,所以这样嵌套它们是没有意义的。您不应该在数组上使用 for..in 循环,但如果您执行key值将是数字索引,它不会以某种方式获取存储在每个索引处的对象的属性。

EDIT:

“某些对象文字对于给定属性具有相同的值,我想创建一个仅包含这些对象文字的新数组。”

好的,重新阅读本文,我想您并不是真的想通过指定国家/地区来选择元素,您想为任何具有重复条目的国家/地区选择元素吗?因此,如果还有另外三个元素都包含“新西兰”,您需要选择它们此外到“美国”的?如果是这样,你可以这样做:

var countryCount = {},
    i;
for (i = 0; i < arr.length; i++)
    if (countryCount.hasOwnProperty(arr[i].country)
       countryCount[arr[i].country]++;
    else
       countryCount[arr[i].country] = 1;

var filteredArr = arr.filter(function(val, i, a) {
                      return countryCount[val.country] > 1;
                  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从对象文字数组中切片数组? 的相关文章

  • jQuery 中的 Javascript .files[0] 属性

    jQuery 中是否有与此语句等效的语句 var value document getElementById id files 0 使用附加 files 0 的标准 jQuery 选择器似乎不起作用 并且我找不到与 files 等效的 jQ
  • 如何使用键盘和鼠标控制相机 - Three.js

    我在 WEB GL 中有一个带有 Three js 的 3D 环境 并且我曾经使用 Orbitcontrols js http codepen io nireno pen cAoGI http codepen io nireno pen c
  • PHP:展平数组-最快的方法? [复制]

    这个问题在这里已经有答案了 是否有任何快速方法可以在不运行 foreach 循环的情况下展平数组并选择子键 在本例中为 键 和 值 或者 foreach 始终是最快的方法 Array 0 gt Array key gt string val
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • 计算Javascript中两次点击之间的时间

    我想用 javascript 计算属性的两次点击之间的时间 但我不知道如何 例如 a href click here a 如果用户单击多次 假设 5 秒内 我想显示警报 如果有帮助的话我正在使用 jQuery 我对 javascript 不
  • 将一个文本框的内容复制到另一个文本框

    假设在文本框中输入了一个条目 是否可以在第二个文本框中保留相同的输入文本 如果是这样 这是如何完成的
  • 禁用 JavaScript 中的右键单击

    当我尝试禁用右键单击时 它不起作用 我尝试使用下面的代码 document onclick function e console log e button if e button 2 e preventDefault return fals
  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • 创建 Cookie 时需要帮助

    我有一个名为yes和另一个名叫no
  • ElectronJS ReferenceError:导航器未定义

    我正在尝试在电子上制作自定义标题栏 但是当我启动我的应用程序时 我遇到了 ReferenceError 导航器未定义 问题 请帮忙 这是我的 main js 中的代码片段 My Codes https i stack imgur com c
  • 在 MVC Razor 中的 C# 和 Javascript 之间共享常量

    我想在服务器上的 C 和客户端上的 Javascript 中都使用字符串常量 我将常量封装在 C 类中 namespace MyModel public static class Constants public const string
  • 按值和键对哈希进行排序(按顺序)

    我正在寻找一种很好的方法来在 Perl 中先按值排序 然后再按键排序 Example my userids williams gt Marketing smith gt Research johnson gt Research jones
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • 如何滚动到div内的元素?

    我有一个滚动的div我想在点击它时发生一个事件 它会强制执行此操作div滚动以查看内部元素 我写的JavasCript是这样的 document getElementById chr scrollIntoView true 但这会在滚动时滚
  • 将文本拆分为数组,同时保留 Swift 中的标点符号

    我想将文本拆分为一个数组 保持标点符号与其余单词分隔开 因此字符串如下 Hello I am Albert Einstein 应该变成这样的数组 Hello I am Albert Einstein 我尝试过sting components
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • Keycloak javascript 适配器 `keycloak.init` 加载 404 iframe

    我正在尝试使用 javascript 适配器将 Keycloak 集成到我的客户端应用程序keycloak js 但是 我似乎无法让它发挥作用 这是我的代码 const keycloak new Keycloak realm my real
  • 加载另一个 JS 脚本后加载

    这是我的代码 very big js file lots of html stuff 问题是 这些是异步加载的 有没有办法等待第二个脚本直到第一个脚本加载 如果您使用 jQuery 有一个非常简单的方法可以通过获取脚本 https api
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1

随机推荐

  • TextWatcher.onTextChanged 被多次调用

    我已经阅读了有关此问题的一些主题 但找不到完整的答案 我有一个包含 3 行的 ListView 每行包含一个 TextView 和一个 EditText 以及一个扩展 BaseAdapter 的自定义适配器 这是适配器的 getView 函
  • 与 Java 7 相比,Java 8 ScriptEngine 的主要性能问题

    我有一个 Java 程序 使用 JDK 7u80 编译 它广泛使用了 JavaScript ScriptEngine JSR 223 我注意到 与 Java 7 运行时环境 JRE 7u80 相比 我的程序在 Java 8 运行时环境 JR
  • ReactJS React-pdf 错误“无法加载 PDF 文件。”经过一些尝试

    我创建了一个 React js 应用程序create react app我正在尝试react pdf查看 pdf 我遇到的问题是我的代码有时有效 有时无效 当我第一次加载应用程序时 pdf 总是加载得很好 但如果我访问网站上的其他链接 ur
  • 在广播接收器响应 Intent.ACTION_BATTERY_CHANGED 之前获取电池电量

    我的程序中有一个广播接收器 可以对电池电量做出反应 如下所示 private BroadcastReceiver mBatInfoReceiver new BroadcastReceiver Override public void onR
  • 表名或列名不能以数字开头?

    我尝试创建名为15909434 user语法如下 CREATE TABLE 15909434 user 这当然会产生错误 然后 在我尝试用谷歌进行一些研究后 我发现了一篇很好的文章here http www informit com art
  • WPF 基础知识:MVVM 的共享全局样式

    我正在尝试使用 MVVM 式的方法来进行 WPF 开发 我在 ViewModel 命名空间下有我的逻辑视图模型类 并且在 View 命名空间下有这些视图模型类的匹配样式 现在 我的视图信息位于 ResourceDictionary XAML
  • 通过 Fabric.js 推送 D3.js 输出以支持 IE8?

    我正在评估Fabric js http fabricjs com 作为替代拉斐尔 js http raphaeljs com 用于创建与 IE8 兼容的交互式可视化 IE8 不支持 SVG 或画布 不幸的是 IE8 支持是不可协商的 Rap
  • 在 Flask 中,如何在单击按钮时生成动态 URL?

    例如 现在如果我在表单元素中有两个按钮 当您单击其中任一按钮时 您将被定向到相应的配置文件
  • ld:文件是针对 Mac OS X 上不受支持的文件格式构建的

    我必须使用在其他 x64 86 计算机上编译的共享对象来构建一个项目 我有这个错误 cc std c11 Wall Werror Wextra pedantic I include src server c obj tftp o o bin
  • 在C中获取终端宽度?

    我一直在寻找一种从 C 程序中获取终端宽度的方法 我不断想出的是这样的东西 include
  • 仅在 RMarkdown 中引用作者/在文本引用中添加所有格

    我想引用 RMarkdown 中的一位作者在他的名字中添加所有格 的内容 但是 我找不到在没有出版年份的情况下引用作者或直接添加所有格的方法 s 它应该看起来像这样 在芬纳 2012 的书中 最小工作示例 对于 R 笔记本 title R
  • Java如何使用私钥文件而不是PEM来解密?

    使用 Java 和 Bouncy Castle 1 52 我可以使用以下代码通过 PEM 证书加载私钥 我还有一个相同的 PKCS8 格式的 private key 文件 直接使用private key文件而不是PEM的代码是什么 Stri
  • 了解 keras 中不同序列的 lstm 输入形状

    我对 keras 和 python 都很陌生 我有一个具有不同序列长度的时间序列数据集 例如第一个序列是 484000x128 第二个序列是 563110x128 等 我已将序列放入 3D 数组中 我的问题是如何定义输入形状 因为我很困惑
  • Spring 3.1 和 JPA 2 没有正在进行的事务异常

    我已经这样做了几个星期了 我已经尝试过 eclipselink 现在只是普通的 JPA 我不断遇到同样的问题 每次我尝试刷新实体管理器时 都会收到 javax persistence TransactionRequiredException
  • 从全日历中获取选定的日期

    我将日历添加到我的 asp net mvc 2 应用程序中here http arshaw com fullcalendar 我想选择参加活动的选定日期 我怎样才能获得选定的日期 我还想将此日期和相应的事件保存到数据库中 这还怎么办 设置插
  • 如何使用 C 将带有 2 个变量的 IF 语句转换为 switch 函数?

    我有一个 IF 语句 我想将其转换为 Switch 语句 但它有 2 个变量 在C上可以实现吗 这是一个石头 剪刀 布的游戏 R代表石头 P代表布 S代表剪刀 char play1 play2 printf nPlayer 1 Enter
  • 使用异步函数等待 onclick 的用户输入

    我是异步新手 也许只是不了解基础知识 但我试图通过调用弹出模式并等待用户提交数据的异步函数来等待来自 onclick 的用户输入 在找到一两个甚至提到使用异步等待页面事件的来源后 这对我的特定任务并不是特别有帮助 我想出了这个 asnyc
  • 如何将 Netbeans 项目导入 Eclipse

    我想将我的 NetBeans 项目转移到 Eclipse 这是一个网络应用程序项目 我将 war 文件导入到 Eclipse 中 但无法获取 Java 文件 并且 war 文件给了我很多错误 导入整个项目的最佳方式是什么 另一种简单的方法如
  • Togglz 我的 SpringBoot 的 Yml/Yaml 配置不起作用

    尝试使用 Togglz 创建功能切换 在我的应用程序中进行了以下配置 代码 bootstrap yml togglz enabled true features FEATURE ONE true 功能枚举类 public enum AppF
  • 如何从对象文字数组中切片数组?

    我有这个数组 其中每个索引都包含一个对象文字 所有对象字面量都具有相同的属性 某些对象文字对于给定属性具有相同的值 我想创建一个包含only那些对象文字 我的想法是对数组进行排序 并将其切片成一个新数组 这是数组 var arr arr 0