检查数组中是否存在字符串值,并返回找到的数组值js
Check if string value is present within array and return found array value(s) js
我有这样的密钥标识符。。。
const category = key; // could be "bus","car","plane"
对于本例,我们使用CCD_ 1。我还有一个字符串数组,看起来像这样。。。
let transportationFields = [
'bus_station', 'bus_stop', 'bus_line', 'took_bus'
'car', 'buyer_of_car', 'car_model',
'train_number', 'train_trip_num', 'train_stop',
];
现在我正在获取的索引
const transFieldValues = transportationFields.indexOf(category) > -1;
但这只是返回true
。我怎样才能抓住它匹配的场地?例如由于CCD_ 3。我如何才能返回它所赋予的所有值?('bus_station', 'bus_stop', 'bus_line', 'took_bus'
)?
提前感谢您的帮助!
您可以使用.filter()
查找所有匹配项,并在数组中返回它们:
let transportationFields = [
'bus_station', 'bus_stop', 'bus_line', 'took_bus',
'car', 'buyer_of_car', 'car_model',
'train_number', 'train_trip_num', 'train_stop',
];
let category = 'bus';
let transFieldValues = transportationFields.filter(function (item) {
return item.indexOf(category) > -1;
});
document.write (JSON.stringify(transFieldValues));
或带有ES6箭头功能:
let transportationFields = [
'bus_station', 'bus_stop', 'bus_line', 'took_bus',
'car', 'buyer_of_car', 'car_model',
'train_number', 'train_trip_num', 'train_stop',
];
let category = 'bus';
let transFieldValues = transportationFields.filter(w => w.indexOf(category) > -1);
document.write (JSON.stringify(transFieldValues));
如果你不介意让Edge用户运气不佳,那么你可以使用.includes()
:
let transFieldValues = transportationFields.filter(w => w.includes(category));
它看起来比你必须与CCD_ 8一起使用的CCD_。
您可以使用Array#filter
let transportationFields = [
'bus_station', 'bus_stop', 'bus_line', 'took_bus',
'car', 'buyer_of_car', 'car_model',
'train_number', 'train_trip_num', 'train_stop',
];
transportationFields = transportationFields.filter(e => {
return e.indexOf('bus') != -1;
});
console.log(transportationFields)
您还可以创建一个函数并传递值来搜索
let transportationFields = ['bus_station', 'bus_stop', 'bus_line', 'took_bus','car', 'buyer_of_car', 'car_model','train_number', 'train_trip_num', 'train_stop'];
var findField = function(input) {
return transportationFields.filter(e => {return e.indexOf(input) != -1;});
}
console.log(findField('bus'));
相关文章:
- 对象数组返回自最近日期以来的最高总体值
- 从多维数组返回嵌套数组
- 为什么当我点击<a>使用纯javascript;这个“;返回url,数组返回“url”;未定义”;
- 带多维数组返回字符串的json_encode;阵列”;而不是数据
- 如何将 AJAX 响应作为 JavaScript 数组返回
- 我正在尝试在 JS 中制作这个随机名称生成器.数组返回未定义
- .push() 多个对象进入 JavaScript 数组返回 'undefined'
- 如何按属性从可观察数组返回项
- 通过jquery发送的关联php数组返回[对象对象]
- 从 Javascript 中的对象数组返回单个属性的数组
- 循环遍历对象数组返回“未定义”
- 拼接数组返回空的序列
- Javascript 多维数组返回第一个值,然后失败
- Json 数组返回空值
- 从下划线.js中的数组返回一系列值
- for 语句不从数组返回值
- MongoDB从数组返回特定字段
- 试图将数组返回到表中的列表中
- Javascript中的二维数组返回未定义的数组
- 将函数数组作为布尔值数组返回