我有对象数组:
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中找到该元素的位置。如果不迭代那个数组,这甚至可能吗?
答案 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参数。