問題タブ [splice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - .splice() は配列を完全に短縮しません
文字列を含む配列があります。文字列に何も書き込まれていない場合は、配列から削除したいと思い.splice()
ます。
どういうわけか、空のエントリがすべて取得されるわけではありません。最初に空のエントリが 2 つある場合は、1 つだけ取得します。
これが私のフィドルとコードです:
jquery - jQuery配列から要素を削除すると、未定義のエラーが発生します
jQueryに配列があります。選択したフィールドで特定の値を持つすべての要素を削除したいと考えています。ループとスプライスを実行すると、エラーが発生します。
エラーが発生する理由を理解しています:
...しかし、最善のアプローチを見つけるのに苦労しています。少しの調査では、grep が正しいアプローチである可能性があるという兆候が示されています。助言がありますか?
* 答え *
結局、これが私がしたことです。誰かがより良い答えを持っていますか?:
javascript - for ループ (javascript) を使用して多次元配列から要素を削除する際の問題
私はこれで初心者の頭を壁にぶつけています...
次のコードがあります。
コンソールに表示される結果は次のとおりです。
私が見たいのは:
"["P2000", "HK"]"は存在しないはずです... for ループの "guns2.length" 引数と関係があるような気がします.. 後続の配列をスキップしているようですスプライスするたびに、修正に頭を悩ませることはできません。
誰かが私を正しく操縦してください:)
javascript - JavaScript splice() メソッドの問題
次の例では、JS で splice メソッドを使用して、さまざまな結果が得られます。
入力数値の長さが 4、7、10、13 などの場合、「bb」の最後の要素が「b」に変わり、その理由がわかりません。私が見ているように、それは常に「a」でなければなりません。なぜそうではないのですか?
c++ - ベクトルから要素を削除するときにベクトルのサイズを小さくするにはどうすればよいですか?
入力サイズに基づいてメモリが制限されるプログラムを書いています。入力サイズが 1000 だとすると、それらをサイズ 1000 のベクターに格納します。後でこのベクターのデータを処理するとき、要素の処理が完了するたびに、それを 2 番目のベクターにプッシュし、vector.erase を使用して元のベクトルから削除します。したがって、これらの 2 つのベクトルには合計で常に 1000 個の要素が格納されるため、常に 1000 サイズのメモリを使用していると思いました。
しかし、私は間違っていerase
ます。要素が削除されたときにベクトルのサイズが縮小されないため、2000 メモリを使用したことがわかりました...それは同じだと思いsplice
ますか?
プログラムが 1000 メモリしか使用しないようにする方法はありますか? 属性を追加して、要素が処理されたかどうかをマークすることで解決できますが、それは最善の方法ではないと感じています。ありがとう!
django - サブプロセスからのdjango(またはwsgi)チェーンstdout
画像/ビデオストリームを処理するためにDjangoでWebサービスを作成していますが、ほとんどが外部プログラムで行われています. 例えば:
- クライアントのリクエスト
/1.jpg?size=300x200
300x200
django (または他の WSGI アプリ) でのpython コードの解析- パラメータ300x200で、モジュールを使用してpython呼び出し
convert
(Imagemagickの一部)subprocess
convert
ローカル ディスクから 1.jpg を読み取り、それに応じてサイズを変換します- 一時ファイルへの書き込み
- Django は
HttpResponse()
、一時ファイルのコンテンツ全体を本体としてビルドして読み取ります
ご覧のとおり、一時ファイルの読み取りと書き込みのプロセス全体は非効率的です。このような同様の外部プログラムを処理するための一般的な方法が必要convert
です.cjpeg
ffmepg
私はこの方法でそれを実装したい:
- python は子プロセスの stdout
fd
を取得しますconvert
- 出力のためにWSGIソケットfdにチェーンします
私は宿題をしました.Googleは、この種のゼロコピーはシステムコールで実行できると言いますsplice()
. ただし、Python では使用できません。では、この種のシナリオで Python のパフォーマンスを最大化するにはどうすればよいでしょうか?
ctypes
?を使用して splice() を呼び出します。- memoryview() または buffer() をハックしますか?
- subprocess has
stdout
which hasreadinto()
、これを何とか利用できますか? - WSGI アプリの fd 番号を取得するにはどうすればよいですか?
私はこれらの初心者です。どんな提案でも大歓迎です、ありがとう!
javascript - この単純な splice コマンドからこの出力が得られるのはなぜですか?
この出力が得られる理由を理解するのに小さな問題があります。
出力は次のとおりです。
出力の 2 行目が次のようにならない理由:
それは割り当ての問題ですか、それとも何ですか?
javascript - アレイ スプライス ポップ シフト 読み取り
私はそのような配列を作成します
listedUsers
そのようなものが出てくるでしょう[Mr.EasyBB,Tonight,Tomorrow,Gone];
問題は、2 つの for ループを setInterval の外側に 1 つと内側に 1 つ使用して比較するかどうかです。
次に、次のようになります。
したがって、オフライン ユーザーを取得するには、基本的に、これを次に返すべきものに置き換えたいと考えてonlineUsers
いoffLineUsers
ますTomorrow,Gone
。オブジェクトには置き換える機能がないことはわかっていますが、どうすればよいでしょうか。
パラメータが必要であり、ポップまたはシフトが配列の始まりと終わりであるため、スプライス関数は機能しないと思います。