从数组数组中返回包含特定字符串的数组

问题描述

请问我在javascrript中不是很好,我有一个数组数组,其中子数组包含一些字符串,我想比较字符串的某些部分以返回包含该字符串的子数组。

这是父数组,其中包含子数组

[ ["1","love.Fish","580 Darling Street,Rozelle","11.97547","8.36132","0","11.9669862,8.3664932|11.9639004,8.3680167|11.96465…3714714|11.9678258,8.3700981|11.9669862,8.3664932"],["2","Young Henrys","76 Wilford Street,Newtown,NSW","11.97804","8.36153","11.973333416347666,8.352956771850586|11.9726617084…686332702637|11.973333416347666,8.352956771850586"] ]

这是我必须比较的字符串

11.9669862,8.3664932 在其中一个数组中

这是我尝试过的

var polygonData = [ ["1",8.352956771850586"] ]
 

polygonData.forEach(function(element) {
  console.log(element);
  // i am getting c from google map latLang
  var t = '"' +  c + '|';
 
  for (var i = 0; i < element.length; i++) {
    if (element[i].includes(t) > -1) {
        console.log(element);
    }
  }  
});

非常感谢您。

解决方法

我认为这行是错误的:

if (element[i].includes(t) > -1) {

您可以这样做:

if (element[i].includes(t)) {
,

尝试

polygonData.filter(x => x.find(y => y.includes("11.9669862,8.3664932")))
,
  1. 搜索单词时,请勿包括",因为这不是字符串内容的一部分。 (var t = '"' + c + '|';
  2. includes方法返回boolean值true / false
  3. 您可以确保使用some方法来避免内部循环。

var polygonData = [ ["1","Love.Fish","580 Darling Street,Rozelle","11.97547","8.36132","0","11.9669862,8.3664932|11.9639004,8.3680167|11.96465…3714714|11.9678258,8.3700981|11.9669862,8.3664932"],["2","Young Henrys","76 Wilford Street,Newtown,NSW","11.97804","8.36153","11.973333416347666,8.352956771850586|11.9726617084…686332702637|11.973333416347666,8.352956771850586"] ]
 
const c = "11.9669862,8.3664932"

polygonData.forEach(function (element) {
  console.log(element);
  var t = c + "|";

  if (element.some((str) => str.includes(t))) {
    console.log("---> found ",element);
  }
});