Blockchain code Metaverse VR

SmartContract×VR×Crypto(574)

スポンサーリンク

//tips

//smart contract

リストの加工で詰まっている箇所が出ているので、そちらの要因を確認。mixlist.forEacの中に入れたninjax.foreachがスキップされてしまっている。

mixlist.forEach(item=>{
console.log('item')
console.log(item)
console.log('ninjax')
console.log(ninjax)

ninjax.forEach(q=>{
console.log('q')
console.log(q)
if(item.userid==q){
ninjafinal.push(item)
}

})
}

 

ここをもっとシンプルな形に変えてみる。

if(mixdone){
console.log('mixdone&&ninjafinal==[]')

ninjafinal= mixlist.filter(mix=>{
ninjax.forEach(q=>{
console.log('q')
if (mix.userid == q) {
return mix;
}
})

})

これもできない。なぜかfilter部分がスキップされてしまう。

https://qiita.com/hirakuma/items/fd7b6492939951190496

Filterのみで完結できる技を見つけたので実行。

if(mixdone){
console.log('mixdone&&ninjafinal==[]')
const vfilt=mixlist.filter(x => ninjax.includes(x.userid))
console.log('mixlist')
console.log(mixlist)
console.log('vfilt')
console.log(vfilt)
console.log('ninjax')
console.log(ninjax)

なぜかvfiltに配列が格納されない。

console.log(mixlist.filter(x => x.userid==‘2’))は機能することが確認できた。

const result=mixlist.filter(function(x){
ninjax.forEach(item=>{
console.log('yes,item')
return x.userid==item
})

})

https://stackoverflow.com/questions/34901593/how-to-filter-an-array-from-all-elements-of-another-array

気がついた。先の参照例は既に使えないもので、mixlistに対してfilterは使えないのではないか。

https://stackoverflow.com/questions/60633156/filter-array-of-objects-if-object-contains-attribute-with-value-present-in-anoth

こちらはエラー。

const result=mixlist.filter(({userid}) =>
userid.some(v => ninjax.includes(v))

);

https://localcoder.org/filter-array-of-objects-based-on-another-array-in-javascript

https://gist.github.com/jherax/f11d669ba286f21b7a2dcff69621eb72

Ninjaxがうまく取得できていないからではないかと気づく。

ninja.forEach(Item => {が実行される前に読み込まれている可能性がある。

下記の条件を確認。

if(mixdone&&ninjax!=[]){
console.log('mixdone&&ninjafinal==[]')

console.log('mixlist')
console.log(mixlist)
console.log('ninjax')
console.log(ninjax)

無事にmixlistもninjaxも取得できている状態。

それでもconsole.log(mixlist.filter(x => ninjax.includes(x.userid)))が表示できない。

var filtered = mixlist.filter(function(item) {
return ninjax.indexOf(item.userid) !== -1 ;
});

console.log('filtered')
console.log(filtered)

こちらも効果なし。

探っていくとninjax=[]が何か不可思議な挙動をしている。letからvarに変更。

console.log('ninjax')
console.log(ninjax)
console.log('ninjax[0]')
console.log(ninjax.includes(2))
Object.prototype.toString.call(ninjax)

useeffect下にsetninjafinal(ninjax)を挿入。

やっと謎が解けた。

console.log('ninjafinal')
console.log(ninjafinal)
console.log(ninjafinal.includes(2))

console.log('mixlist.filter(x => ninjafinal.includes(x.userid)')
console.log(mixlist.filter(x => ninjafinal.includes(x.userid)))

const [ninjafinal,setninjafinal]=useState([])を利用してuseeffectでninjaxを格納することで認識された。

Renderingタイミングとうまくあわず内容が反映できていない。どうこれらの内容を反映させるか。

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

3

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-Blockchain, code, Metaverse, VR
-, ,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.