いくつかの値を持つ配列があります。jQueryを使用してその配列を検索して、一致するかそれに近い値を見つけるにはどうすればよいですか?
var a = ["foo","fool","cool","god","acl"];
を検索したい場合c
は返されますが、返さcool
れませんacl
。
どうすればそれを達成できますか?
いくつかの値を持つ配列があります。jQueryを使用してその配列を検索して、一致するかそれに近い値を見つけるにはどうすればよいですか?
var a = ["foo","fool","cool","god","acl"];
を検索したい場合c
は返されますが、返さcool
れませんacl
。
どうすればそれを達成できますか?
これを試して:-
arr = jQuery.grep(a, function (value) {
search = /c/gi;
if(value.match(search)) return true;
return false;
});
また
function find(arr) {
var result = [];
for (var i in arr) {
if (arr[i].match(/c/)) {
result.push(arr[i]);
}
}
return result;
}
window.onload = function() {
console.log(find(["foo","fool","cool","god","acl"]));
};
substring
配列内の各文字列が検索対象の文字列で始まるかどうかを確認するために使用します。
var strings = [ "foo", "cool", "acl" ];
var needle = "c";
for (var i = 0; i < strings.length; ++i) {
if (strings[i].substring(0, needle.length) === needle) {
alert("found: " + strings[i]);
}
}
これを行う簡単な方法は、「c」で始まる単語をチェックし、配列を反復することです。
var ar = ['acl','cool','cat']
for(var i = 0 ; i<ar.length ; i++){
console.log(ar[i].match(/^c/))
}
//Prints:
//null
//["c", index: 0, input: "cool"]
//["c", index: 0, input: "cat"]
JavaScript 1.6以降で利用可能なフィルターメソッドを使用できます。フィルタリングされた値を含む配列が返されます。複数のアイテムを合わせたい場合に非常に便利です。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
var a = ["foo","fool","cool","god","acl"];
var startsWith = 'c';
a.filter(function (value) {
return value && value.length > 0 && value[0] == startsWith;
});
// yields: ["cool"]
var a = ["foo","fool","cool","god","acl"];
var Character="f";
for(i=0;i<a.length;i++){
if(a[i].indexOf(Character)!=-1){
document.write(a[i]+"<br/>");
}
}