如何从对象名称获取数组位置?

时间:2017-05-12 16:31:07

标签: javascript arrays

我有对象数组:

arrDates = [{date:"03/28/2017", elId:0}, {date:"03/27/2017", elID:"newElement"}, {date:"03/27/2017", elId:1}, {date:"03/22/2017", elId:2}, {date:"03/16/2017", elId:3}, {date:"03/10/2017", elId:4}, {date:"08/02/2012", elId:5}, {date:"08/20/2008", elId:6}, {date:"08/18/2004", elId:7}, {date:"10/28/2003", elId:8}];

我想知道如何使用elID = newElement访问元素。当我访问该元素时,我想在arrDates中找到该元素的位置。如果不迭代那个数组,这甚至可能吗?

3 个答案:

答案 0 :(得分:0)

这是获取对象索引的新技术。这是从2016年开始提供的。

Form

工作正常,将在arrDates中返回该元素的位置。谢谢!

答案 1 :(得分:0)

也许您要问的是如何在不编写长 for 循环的情况下执行此操作?

arrDates = [{date:"03/28/2017", elId:0}, {date:"03/27/2017", elID:"newElement"}, {date:"03/27/2017", elId:1}, {date:"03/22/2017", elId:2}, {date:"03/16/2017", elId:3}, {date:"03/10/2017", elId:4}, {date:"08/02/2012", elId:5}, {date:"08/20/2008", elId:6}, {date:"08/18/2004", elId:7}, {date:"10/28/2003", elId:8}];
  

此示例将为您提供一系列 elID ' newElement'

的项目
var newElement = arrDates.filter(isNewElement);
// => [{date:"03/27/2017", elID:"newElement"}];


function isNewElement(element){
  return /newElement/.test(element.elID);
}
  

您要求索引,因此这是获取与' newElement'

匹配的第一个项目的索引的示例
var newElementIndex = arrDates.findIndex(isNewElement);
// => 1;

注意:' findIndex'在IE中没有支持,请使用 PolyFill

答案 2 :(得分:0)

使用findIndex的其他答案效果很好。所以我会做一个使用循环的工作,以防你想要它。

ggplot2

您可以通过创建自己的myFindByIndex来获取回调函数,然后使用它来创建一个更通用的函数来通过id查找:

plotly

所以你可以继续抽象。最后,假设您不想使用findIndex,您可能也想在findByElId函数中删除硬编码的arrDates参数。