Javascript 在稀疏数组数据结构中,如何检索此类结构的实际位置计数';什么项目?

Javascript 在稀疏数组数据结构中,如何检索此类结构的实际位置计数';什么项目?,javascript,arrays,object,find,sparse-matrix,Javascript,Arrays,Object,Find,Sparse Matrix,我有一个稀疏的数组条目/项,如下所示 var indexed = new Array(); indexed["5"] = [35, 2]; indexed["3"] = [20, 2]; indexed["4"] = [25, 3]; 我想通过提供一个条目的数组索引(分别是它的键),在这样一个稀疏数组结构中找到类似条目/条目的“真实”位置计数的东西 预期成果: 如果确实提供了3(作为字符串或数值),则返回的(索引)值应为数值0 如

我有一个稀疏的数组条目/项,如下所示

var indexed = new Array();

indexed["5"] = [35, 2];
indexed["3"] = [20, 2];
indexed["4"] = [25, 3];
我想通过提供一个条目的数组索引(分别是它的键),在这样一个稀疏数组结构中找到类似条目/条目的“真实”位置计数的东西

预期成果:

  • 如果确实提供了
    3
    (作为字符串或数值),则返回的(索引)值应为数值
    0
  • 如果提供了
    4
    (作为字符串或数值),则返回的(索引)值应为数值
    1
  • 如果确实提供了
    5
    (作为字符串或数值),则返回的(索引)值应为数值
    2
  • 如果搜索不成功,返回值应为数值
    -1

一种有效的方法是通过数组的方法搜索数组。然后回调方法需要实现匹配条件,即。。。当前处理的数组项是否有一个正在查找的密钥

find
然后返回(第一个)匹配对象或返回
未定义的值。对于后一种情况,为了防止访问
未定义的属性
,可以使用

最终的解决方案可能与提供的下一个类似

const sampleList=[{
'2': [1, 3],
}, {
'3': [1, 4],
}, {
'4': [2, 6],
}];
函数getFirstItemOfObjectByKey(arr,key){
返回(arr.find(obj=>
对象hasOwnProperty(键)
))?[key][0];
}
console.log(
getFirstItemOfObjectByKey(sampleList,4)//应为:2
);
console.log(
getFirstItemOfObjectByKey(sampleList,3)//应为:1
);
console.log(
getFirstItemOfObjectByKey(sampleList,1)//应为:未定义
);

。作为控制台包装{min height:100%!important;top:0;}
能否提供您的尝试并将数据添加为格式化的代码块而不是图像?请阅读并确认。将代码和示例数据显示为格式正确的文本(以便可以轻松复制和粘贴以进行测试),而不仅仅是它们的图像。另外,请解释一下,到目前为止您尝试了什么–此网站不是一个代码编写服务。@Invisible55。。。关于上次编辑的最新方法还有什么问题吗?说真的,如果你能给最终的解决方案一个最终的反馈,那就太好了。放弃一个描述不太好的问题,通过多次迭代获得帮助,但不留下最终反馈不是最礼貌的行为。此外,如果您能找到并单击接受OP最有用答案的按钮,以防最后提供的解决方案是您从一开始就在寻找的解决方案,那将非常好。非常感谢您的帮助。但是,在我的例子中,解决方案不起作用,因为您的函数使用对象数组。我的问题是基于数组的数组。我的第一个数组是索引的,第二个数组是关联的。也许你有办法解决我的问题?谢谢。@Invisible55。。。相信我,JavaScript中没有像关联数组这样的东西。无论如何,这种语言的主要对象结构可以归结为一袋键值对。您可以自由地再次编辑问题,并提供正在处理的嵌套数据结构的示例。只有这样,才能运行和调试代码,以找到上述解决方案无法完成预期任务的原因。我猜到目前为止。。。您的JS引擎/环境不支持
?。
operator.var index=new Array();索引[“3”]=[20,2];索引[“4”]=[25,3];索引[“5”]=[35,2];这就是它的样子,数组中的数组,一个是索引的,另一个是关联的。没有物体。终于找到了。。。但是您是否意识到这种结构没有任何用处,因为提供给稀疏数组的基于数字的键在这样的稀疏数组中都等于精确的
index
ed位置?给定
var索引=新数组()
索引[“3”]=[20,2]
然后迭代这样一个数组将为您提供该数组的单个项/条目的数值
3
作为
index
。我现在知道了,你想要实现什么。但我宁愿修正以不合适的方式使用这种数据结构的决定。我想我把问题中的数组定义搞砸了,因为最初我已经覆盖了索引数组键。现在我更正了它,您可以看到我将关联数组推到索引中。您的代码无法处理此问题,但我认为您已经非常接近了。现在这个数据结构没有定义它。也许你现在可以让它工作了。
obj => obj.hasOwnProperty(key)