我有两个与我深深比较的对象阵列 lodash
但是,我有一个问题:
> var x = [{a:1, b:2}, {c:3, d:4}];
> var y = [{b:2, a:1}, {d:4, c:3}];
> _.difference(x,y, _.isEqual);
[ { a: 1, b: 2 }, { c: 3, d: 4 } ]
Run Code Online (Sandbox Code Playgroud)
我应该如何比较看两者是否相等?
我正在尝试使用三元运算符(?:)启用基于条件的ng-click
ng-click="hasPermission?Update():...."
在三元运算符的最后一个参数中,我可以通过什么,以便不会发生任何事情.
另外,我不想在我的JS中创建任何虚函数或者将任何不相关的条件写为1 = 1
我已经生成了一个角度项目yo angular [project-name],尝试通过它构建它grunt build.我检查了dist/scripts/vendor.d41d8cd9.js文件,我看到它是空的.我发现了这个问题,它根本没有帮助我.如果有人能指出我正确的方向,我将不胜感激.
忽略可以与shell globs关联使用的命令,我想完成从glob模式中排除所有目录和子目录中的特定目录模式.
假设我有这个目录结构:
+-- a
+-- a1
+-- assets
+-- a1-1
+-- a1-1.js
+-- a1-2
+-- a1-2.js
+-- a2
+-- a2.js
+-- b
+-- b1
+-- b1-2
+-- b1-2-3
+-- assets
+-- b1-2-3.js
+-- b.js
+-- c
+-- c.js
Run Code Online (Sandbox Code Playgroud)
我想列出assets其文件路径中没有的所有js文件.
到目前为止我尝试过的:
$ shopt -s globstar extglob
$ ls ./**/!(assets)/**/*.js
Run Code Online (Sandbox Code Playgroud)
上述模式不仅实现了它的目标,甚至还显示了重复的输出.我知道我可以这样做:
$ ls ./**/*.js | grep -v "assets"
Run Code Online (Sandbox Code Playgroud)
或者任何其他可以管道的命令,我只想要一个纯粹的shell glob模式.
预期产出:
a/a2/a2.js
b/b.js
c/c.js
Run Code Online (Sandbox Code Playgroud) 我一直在尝试在Laravel项目中使用gulp创建一个构建系统,现在唯一的问题就是在我的master.blade.php文件中重命名正确的文件名.就像现在一样,它只跟随gulp-useref参数中提供的文件名,但修改过的文件gulp-rev不会被替换gulp-rev-replace.
这是我的gulp任务:
gulp.task('build', ['clean', 'scss', 'js', 'master'], function() {
var assets,
jsFilter = $.filter('**/*.js'),
cssFilter = $.filter('**/*.css');
return gulp.src('app/views/layouts/master.blade.php')
.pipe(assets = $.useref.assets({searchPath: '/'}))
.pipe(jsFilter)
.pipe($.uglify())
.pipe(jsFilter.restore())
.pipe(cssFilter)
.pipe($.csso())
.pipe(cssFilter.restore())
.pipe($.rev())
.pipe(assets.restore())
.pipe($.useref())
.pipe($.revReplace())
.pipe($.rename(function(path) {
if(path.extname === '.php') {
path.dirname = 'app/views/layouts';
} else {
path.dirname = 'public/assets';
}
}))
.pipe(gulp.dest('./'))
.pipe($.size({title: 'build files', showFiles: true}))
.on('end', function() {
setTimeout(function() {
// force watchify to close all watchers
process.exit();
});
});
}); …Run Code Online (Sandbox Code Playgroud) 我目前很困惑为什么终端中的shell globbing使用否定但在bash中运行时显示错误.
获取下面终端中执行的命令,该命令显示./HTML目录中的所有js文件,但以js文件结尾的文件除外.bundle.js.
$ shopt -s globstar
$ ls ./HTML/**/!(*.bundle).js
Run Code Online (Sandbox Code Playgroud)
上面的命令工作得很好,现在让我们把它放在一个bash文件中
list-js.sh
#!/usr/bin/env bash
shopt -s globstar
ls ./HTML/**/!(*.bundle).js
Run Code Online (Sandbox Code Playgroud)
在终端中执行:
$ bash list-js.sh
list-js.sh: line 4: syntax error near unexpected token `('
list-js.sh: line 4: `ls ./HTML/**/!(*.bundle).js'
Run Code Online (Sandbox Code Playgroud)
如您所见,它显示语法错误.