特定
var arr = [1,2,true,4,{"abc":123},6,7,{"def":456},9,[10]]
Run Code Online (Sandbox Code Playgroud)
我们可以arr使用Number构造函数过滤数组中的数字项
var res = arr.filter(Number); // [1, 2, true, 4, 6, 7, 9, Array[1]]
Run Code Online (Sandbox Code Playgroud)
是true和[10]预期在所得数组?如果我们替换false了true在arr
var arr = [1,2,false,4,{"abc":123},6,7,{"def":456},9,[10]]
var res = arr.filter(Number) // [1, 2, 4, 6, 7, 9, Array[1]]
Run Code Online (Sandbox Code Playgroud)
运用 Array.isArray
var res = arr.filter(Array.isArray) // [Array[1]]
Run Code Online (Sandbox Code Playgroud)
String
var res = arr.filter(String) // [1, 2, true, 4, Object, 6, 7, Object, 9, Array[1]]
Run Code Online (Sandbox Code Playgroud)
如果我们想要在arr对象,索引中过滤项目4,7我们会尝试 …
我可以使用getValues()获取范围值,并通过在Google App Script中声明以下变量将其放入字符串中
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Test");
var range_input = ss.getRange("A1:A").getValues();
Run Code Online (Sandbox Code Playgroud)
但是,我意识到我的字符串中有很多逗号可能来自所有空调.
例如,如果值如下
================
Spreadsheet("Test") Values
A1=abc
A2=def
A3=
A4=
A5=
A6=uvw
A7=xyz
================
Run Code Online (Sandbox Code Playgroud)
如果我做msgBox,它会得到类似下面的内容.
Browser.msgBox(range_input) // results = abc,def,,,,uvw,xyz,,,,,,,,,,,
Run Code Online (Sandbox Code Playgroud)
有没有办法删除尾随的逗号,所以我得到类似下面的东西?(即忽略空单元格)
Browser.msgBox(range_input) // results = abc,def,uvw,xyz
Run Code Online (Sandbox Code Playgroud) 我正在做一些小练习来保持我对js怪癖的全新认识.我试着编写一些简单的过滤器,它们返回一个包含某些元素的新数组,它们是字符串,数字,ecc ...而且我很惊讶arr.filter(String)在给定数组中产生的数字也是数字.
function onlyString(arr) {
return arr.filter(String);
}
onlyString([2, 4, "", "omg", ]) // returns [2, 4, "omg"]Run Code Online (Sandbox Code Playgroud)
然后我想看看arr.filter(Number)会回溯什么
function onlyString(arr) {
return arr.filter(Number);
}
onlyString([2, 4, "", "omg", ]) // returns [2, 4]Run Code Online (Sandbox Code Playgroud)
另外,我在arr中添加了一个空对象,看看会发生什么:
function onlyString(arr) {
return arr.filter(Object);
}
onlyString([2, 4, "", "omg", {}]) // returns [2, 4, "", "omg", {}]Run Code Online (Sandbox Code Playgroud)
乍一看,在这里,我更困惑,但后来我认为返回数组是正确的,因为在js中一切都是对象,或者我在这种情况下是对的吗?
顺便说一句,我真的很想了解String过滤器下发生了什么,希望你能帮助我