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

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

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

4

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

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-Blockchain, code, Metaverse, VR
-, ,

Copyright© BUSINESS HACKER , 2022 All Rights Reserved Powered by AFFINGER5.