includes()
をfind()
以内に使用しようとすると2つ以上の項目が表示されません。 JSONファイルは有効です。だから私は不思議だった、これはより良い解決策は、これは動作していないようですか?find()内でincludes()を使用できますか?
async function getTheRightObject(input){
let Obj = await aJSONFile.find(item => item.AnArray.includes(input));
console.log(Obj);
return Obj;
}
let userInput = "annother one";
getTheRightObject(userInput).then(function(output){
console.log(output);
}).catch(function (err) {
//Error things
});
JSONのようなもの:
[{
"Id": 1,
"Code": "586251af58422732b34344c340ba3",
"Input": ["official Name", "officialname", "oficial name", "officcial name"],
"Name": "Official Name",
"Flavor": "",
"Image": "https://123.com/image.png"
},
{
"Id": 2,
"Code": "597f723dceeca347a243422f9910e",
"Input": ["another one", "anotherone", "annother one", "another 1"],
"Name": "Another One",
"Flavor": "A bit of text",
"Image": "http://123.com/image2.png"
},
etc...
]
だから私は、JSONファイルのオブジェクトInput
と、ユーザーの入力に一致する、このJSONファイルにオブジェクトを検索したい、と返信Name
。しかし、この解決策は、最初の2/3項目程度でしか機能しないようです。
編集: 最初の2つのオブジェクトには小文字しかないようです。 jsonファイルの他のオブジェクトでは、大文字も使用しました。
私の解決策の最後はです。
- JSONファイルのすべての
object.Input = ['text1', 'text2', 'text3, 'etc']
は今 - 入力に
toLowerCase()
を使用する場合低くなっています。以下のように:私はオブジェクトが私の場合は非常にユニークです知っているので
let Obj = await aJSONFile.find(item => item.AnArray.includes(input.toLowerCase));
これは私の場合で動作します。他の場合(つまり、複数のオブジェクトが必要な場合)、Tiny Giantまたはvarit05のソリューションを使用することができます。
おかげであなたの応答のためのチームメイト。私はinclude()をfind()の内部で使うことは簡単でクリーンな方法であると考えました。これはjsonファイルの最初の2つの項目で機能していたためです。 私はforループを使用します。 – Hedva
それがあなたを助けることを知ってうれしい! – varit05