我有这个 JS 对象:
var test = {"code_operateur":[""],"cp_cult":["",""],"annee":["2011"],"ca_cult":[""]}
当我使用这个函数时:
for (i in test) {
if ( test[i] == "" || test[i] === null ) {
delete test[i];
}
}
我得到:
{"cp_cult":["",""],"annee":["2011"]}
还不错,但我想删除空的“cp_cult”属性(它是一个数组,而不是另一个字符串)。
注意:我不想手动删除 key !
最佳答案
看起来你在这里问了 2 个问题。
- 如何删除对象的属性;和
- 如何判断一个对象是否实际上是一个数组。
您可以使用 delete
运算符删除对象的属性。
delete test.cp_cult;
在 JavaScript 中数组是对象,这意味着 typeof([])
无益地返回 object
。通常,人们通过使用框架中的函数(dojo.isArray
或类似的东西)或滚动他们自己的方法来确定对象是否为数组来解决这个问题。
没有 100% 保证的方法来确定一个对象是否实际上是一个数组。大多数人只是检查它是否具有数组的某些方法/属性 length
、push
、pop
、shift
、unshift
等
关于javascript - 如何从多深度 JavaScript 对象中删除空属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093192/