相关疑难解决方法(0)

如何使用Array.prototype.filter过滤对象?

特定

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]预期在所得数组?如果我们替换falsetruearr

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我们会尝试 …

javascript arrays ecmascript-6 ecmascript-7 ecmascript-next

6
推荐指数
1
解决办法
3846
查看次数

如何忽略getRange()的空单元格值.getValues()

我可以使用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)

google-sheets google-apps-script

6
推荐指数
2
解决办法
9952
查看次数

为什么arr.filter(String)也返回数字?

我正在做一些小练习来保持我对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过滤器下发生了什么,希望你能帮助我

javascript arrays

3
推荐指数
1
解决办法
389
查看次数