如何解决从数组数组中返回包含特定字符串的数组
请问我在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")))
,
- 搜索单词时,请勿包括
"
,因为这不是字符串内容的一部分。 (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);
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。