【问题标题】:javascript array multidimension search indexjavascript数组多维搜索索引
【发布时间】:2017-10-19 20:55:53
【问题描述】:

我在 javascript 中有一个数组。我一直在尝试搜索索引,但它非常令人沮丧。数组里面有一个对象,对象里面有一个数组作为值。

这是源代码的样子:

rows = [{"id":"id0","cell":["array1","array2"]},{"id":"id1","cell":["array3","array4"]}];

我试过了:

var v = {cell:["array1","array2"]};
rows.indexOf(v)

还有一个单选按钮:

<input type="radio" name='array' value="array1, array2">

这里是jQuery:

var i = $("input:checked").val().split(',');
rows.indexOf(i)

索引结果为-1

【问题讨论】:

  • @ObsidianAge 是的,我使用 split() 将值设为数组

标签: javascript arrays search indexof


【解决方案1】:

试试这个。这是一种函数式方法,循环遍历行中的每个索引,如果匹配则返回 true。

var rows = [{"id":"id0","cell":["array1","array2"]},{"id":"id1","cell":["array3","array4"]}];
var index = rows.findIndex(function(i) {
  return JSON.stringify(i.cell) == JSON.stringify(["array1","array2"])
});
console.log(index);

输出应返回0。我们需要将两个对象都转换为 JSON.strings 的原因是 javascripts 如何处理两个对象的相等性。你可以阅读更多关于它的信息here。

【讨论】:

  • 请记住,如果数组是["array2","array1"],它将不匹配。
  • 如何调用数组单元的元素foreach语句?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 2011-07-05
  • 2015-06-15
  • 1970-01-01
  • 2017-07-17
相关资源
最近更新 更多