【发布时间】:2017-06-08 19:32:15
【问题描述】:
我有一个对象jsonRes[0],其中包含需要根据条件删除的值。以下工作可删除字符串化对象中的null、缺失值和等于零的值:
function replacer(key, value) {
// Filtering out properties
if (value === null || value === 0 || value === "") {
return undefined;
}
return value;
}
JSON.stringify(jsonRes[0], replacer, "\t")
但是,当我使用 includes 方法添加条件时,我收到一个错误:
function replacer(key, value) {
// Filtering out properties
if (value === null || value === 0 || value === "" || value.includes("$")) {
return undefined;
}
return value;
}
Uncaught TypeError: value.includes is not a function
为什么会出现这种情况,是否有解决方法?
【问题讨论】:
-
如果该值未定义,则表示它没有类似包含函数的东西
-
如果你查看includes() :developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…的文档,大多数浏览器不支持这个属性。 stackoverflow.com/questions/31340868/… 使用 toString() 将属性转换为字符串后,您可以使用广泛支持的 indexOf():
-
好吧,如果
value是一个数字、(非数组)对象或布尔值,它不会有.includes方法吗?大概你打算写typeof value == "string" && value.includes("$")之类的东西。
标签: javascript