我有一个数组。我有一个函数可以检查数组是否包含数字“2”。
如果找到该数字,我希望该函数返回 true。如果不是,它应该返回 false。
我写了这个:
function hasTwo(arr) {
arr.forEach((x) => {
if (x === 2) {
console.log("Two!")
return true
}
})
console.log("No two :(")
return false
}
let arr = [1,2,3,4,5,6]
console.log(hasTwo(arr))
Run Code Online (Sandbox Code Playgroud)
我的期望是,在第二次 forEach 迭代中,if 条件将得到满足,函数将返回 true。
但是,这是控制台输出:
Two!
No two :(
false
Run Code Online (Sandbox Code Playgroud)
我相信第一个 return 语句是从条件块返回,而不是从封闭函数返回。(是对的吗?)
我用变量重写了函数来存储返回值:
function hasTwo(arr) {
let result = false
arr.forEach((x) => {
if (x === 2) {
console.log("Two!")
result = true
}
})
return result
}
Run Code Online (Sandbox Code Playgroud)
但如果满足 x === 2 条件,我看不出该函数继续存在的意义。有没有办法返回一个值并立即退出函数?
我正在建立一个新的Rails项目,在给Rubocop初步整理之后,我只剩下一个冒犯了.
鲁博普抱怨道:
config/environments/development.rb:16:6: C: Please use Rails.root.join('path', 'to') instead.
if Rails.root.join("tmp/caching-dev.txt").exist?
Run Code Online (Sandbox Code Playgroud)
我看到它Rails.root返回当前项目的路径.所以我试过了
if File.join(Rails.root, "tmp/caching-dev.text").exist?
Run Code Online (Sandbox Code Playgroud)
代替.但是,Rubocop抱怨道:
config/environments/development.rb:17:6: C: Please use Rails.root.join('path', 'to') instead.
if File.join(Rails.root, "tmp/caching-dev.text").exist?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
有什么意义path和root争论?肯定Rails.root是路径?!
我正在尝试安装 php 单元版本 6.5。
我已经安装了 7.0.1,并尝试使用以下命令安装 phpunit 6.5 版本:
brew install phpunit@6.5
Run Code Online (Sandbox Code Playgroud)
Brew 告诉我安装了旧版本,但phpunit --version版本是 7.0.1。
尝试brew switch phpunit 6.5,我收到消息:
Error: phpunit does not have a version "6.5" in the Cellar.
Versions available: 7.0.1
Run Code Online (Sandbox Code Playgroud)
我需要采取哪些步骤才能将版本切换到 6.5?
我有一个数组[1,2,3],我想true在每个项目之间插入相同的值 ( ),使其变为:
#=> [1, true, 2, true, 3, true]
Run Code Online (Sandbox Code Playgroud)
我目前的方法有点啰嗦:
[1,2,3].zip(Array.new(3, true)).flatten
Run Code Online (Sandbox Code Playgroud)
谁能建议一种更优雅的方法来做到这一点?
我正在尝试使用 UJS 触发表单提交:
<%= f.file_field :profile_image,
direct_upload: true,
accept: 'image/png,image/gif,image/jpeg',
onchange: "Rails.fire(this.form, 'submit')"
%>
Run Code Online (Sandbox Code Playgroud)
但是,我在 JS 控制台中看到以下错误:
ReferenceError: Can't find variable: Rails
Run Code Online (Sandbox Code Playgroud)
应用布局文件指向应用JS包:
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
Run Code Online (Sandbox Code Playgroud)
我可以看到它通过控制台日志的输出加载:
console.log('Application pack loaded')
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("@rails/activestorage").start()
Run Code Online (Sandbox Code Playgroud)
据我了解,rails ujs 应该公开Rails对象。那正确吗?
为什么该Rails变量对浏览器不可用?我需要做什么来确保它是?