私はいくつかのオブジェクトをlocalstorageに保存しています。キーを取得すると無視されるオブジェクトがいくつかありますが、キーをフィルタリングする配列があります。私は実際のキー/値を持つlocalstorageとして私をここで考えると、私はbglist
、username
とvisitedbefore
のプロパティを無視したい、私はループを介してそれをしようとしています。しかし、bglist
だけがフィルタリングされたものとして扱われています。キーオブジェクトを適切にフィルタリングする方法
var l = {
'1': [{ description: 'ga', set_title: 'name this reminder' }],
bglist: [
{
author: 'Bildermeines',
images: [
'./images/bildermeines/landscape-2130844.jpg',
'./images/bildermeines/milky-way-2076251.jpg',
'./images/bildermeines/nature-2484584.jpg',
'./images/bildermeines/port-2506025.jpg',
'./images/bildermeines/waterfall-2115206.jpg',
],
},
{
author: 'Jez Timms',
images: [
'./images/jeztimms/jez-timms-157465.jpg',
'./images/jeztimms/jez-timms-158151.jpg',
'./images/jeztimms/jez-timms-178355.jpg',
],
},
{
author: 'Lubos Houska',
images: [
'./images/luboshouska/city-1134141.jpg',
'./images/luboshouska/prague-1168302.jpg',
],
},
{
author: 'oadtz',
images: [
'./images/oadtz/bangkok-1897718.jpg',
'./images/oadtz/electricity-1835546.jpg',
'./images/oadtz/star-1908593.jpg',
],
},
{
author: 'quangle',
images: [
'./images/quangle/ham-ninh-1050828.jpg',
'./images/quangle/sunrise-1014711.jpg',
],
},
{
author: 'skeeze',
images: [
'./images/skeeze/eiffel-tower-1156146.jpg',
'./images/skeeze/monument-valley-1593318.jpg',
'./images/skeeze/mountains-2228259.jpg',
],
},
],
username: 'Disgusting',
visitedbefore: false,
};
let filterArr = ['bglist', 'username', 'visitedbefore'];
let keys = Object.keys(l),
i = 0,
key,
array,
filterItem = 0;
for (; filterItem < filterArr.length; filterItem++) {
for (; (key = keys[i]); i++) {
if (filterArr[filterItem] === key) {
console.log(key + ' is filtered ' + filterArr[filterItem]);
} else {
console.log(key + ' is not filtered');
}
}
}
以下は、私にJSON.parse()
レトリバーは簡単にキーと値のペアをフィルタリングするために使用することができ、出力
1 is not filtered
bglist is filtered bglist
username is not filtered
visitedbefore is not filtered
希望の出力は何ですか?ネストされたループはちょっと変わったようです: 'filterArr'の各項目に対して、すべてのオブジェクトキーをループしますか?外のループが始まる前に 'i'の初期値を一度しか設定していないので、内部ループは外側の最初の繰り返しに対してのみ実行されるので、あなたはそうしません。内部ループの 'for(i = 0; ...')を設定して何が起こるかを見てください。 – nnnnnn