質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

2回答

298閲覧

Vanilla への翻訳の方法

xmg

総合スコア20

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2021/07/25 09:14

教えてください

Node.js で書かれたコードをどう解釈したらよいのかが何も分かりません。
Vanilla で、以下のコードを再現する方法をお教えいただければ助かります。

Node.js

1 2a=>a.map(p=c=>p=p<<7|c&127)|p 3

出典
https://bit.ly/3iIVvIG

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Node.js で書かれたコードをどう解釈したらよいのかが何も分かりません。

Vanilla で、以下のコードを再現する方法をお教えいただければ助かります。

いえ、当該のコードはそもそも純粋なJavaScriptです。Node特有の記法ではまったくないです。

投稿2021/07/26 02:50

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

javascript

1const f = a=>a.map(p=c=>p=p<<7|c&127)|p

は下記とほぼ等価とおもいます。

javascript

1function f(a){ 2 let p; 3 for(let i=0;i<a.length;i++) { 4 p=p<<7|a[i]&127 5 } 6 return p 7}

(計算結果:元のコードの計算結果と同じ)

console.log(f([ 0x00 ])) // 0 console.log(f([ 0x07 ])) // 7 console.log(f([ 0x7f ])) // 127 console.log(f([ 0x81, 0x00 ])) // 128 console.log(f([ 0xC0, 0x00 ])) // 8192 console.log(f([ 0xff, 0x7f ])) // 16383 console.log(f([ 0x81, 0x80, 0x00 ])) // 16384 console.log(f([ 0x86, 0xc3, 0x17 ])) // 106903 console.log(f([ 0xbd, 0x84, 0x40 ])) // 1000000 console.log(f([ 0xff, 0xff, 0x7f ])) // 2097151 console.log(f([ 0xC0, 0x80, 0x80, 0x00 ])) // 134217728 console.log(f([ 0xFF, 0xFF, 0xFF, 0x7F ])) // 268435455

(最後の「|p」は mapによって返ってきたArrayを外すためにつけてるんじゃないかと。)

投稿2021/07/25 10:52

編集2021/07/25 11:00
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xmg

2021/07/26 02:12

早速のご回答をいただき、ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問