2017-09-19 16 views
0

私はLaravel 5.5を使用しています。私はnpm installnpm run devを実行しましたが、一般的に私はJavascriptを実行して良い作業環境を持っていますが、lodashのremove()関数を使用して配列から要素を削除しようとしています。lodashのremove()関数を使用できないのはなぜですか?

​​

Lodashがresources/assets/js/bootstrap.jsにロードされている:

var array = [1, 2, 3, 4]; 
var evens = _.remove(array, function(n) { 
    return n % 2 == 0; 
}); 

上記のコードは、次のエラーを生成します。

window._ = require('lodash'); 

他のロダッシュメソッドは正常に動作します。

_.each([1, 2], function(n) { 
    console.log(n); 
}); 

なぜ私は.remove()を使用できないのですか?

+0

あなたのpackage.jsonにはどのバージョンのlodashがありますか? – Ferrybig

+0

laravel-mixには、package.jsonの中に "lodash"という依存関係 "^ 4.17.4"があります。 – Kebian

答えて

1

問題はLaravel Sparkも使用していたことです。 Sparkはresources/assets/js/bootstrap.jsを使用せず、vendor/laravel/spark/resources/assets/js/spark-bootstrap.jsに独自のブートストラップをロードします。

実際にスパークのブートストラップには、lodashの代わりにunderscoreパッケージが必要なため、混乱します。

window._ = require('underscore'); 
+0

グローバル識別子に頼るのではなく明示的にロダッシュが必要な方が簡単でしょうか? 'import _ from 'lodash';'は、lodashを使いたいすべてのモジュールで十分です。 – Mjh

+0

LaravelとSparkのフレームワークは、特にglobalである 'window._'を特別に設定して使用します。私はちょうど既存のインスタンスを再利用したかったのです。私は個人的にアンダースコアを使用して満足していますが、他の変数にlodashをインポートすることはオプションです。 – Kebian

関連する問題