问题描述
请问我在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
在其中一个数组中
这是我尝试过的
非常感谢您。
解决方法
我认为这行是错误的:
if (element[i].includes(t) > -1) {
您可以这样做:
if (element[i].includes(t)) {
,
尝试
polygonData.filter(x => x.find(y => y.includes("11.9669862,8.3664932")))
,
- 搜索单词时,请勿包括
"
,因为这不是字符串内容的一部分。 (var t = '"' + c + '|';
) -
includes
方法返回boolean
值true / false - 您可以确保使用
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);
}
});