javascript - 按索引删除 javascript 键/值对

标签 javascript string function object key

function removeString(obj) {
  var propertyArray = Object.values(obj);            //make array of just properties 
  for(var i = 0; i < propertyArray.length; i++) {
     if (typeof propertyArray[i] === "string")          //find string
     delete Object.keys(obj)[i];  //delete the key with the same index as the string
  }                                
  return obj;//return new object without string 
}

var testObject = {size: 6, name: 'String', age: 20}

console.log(removeString(testObject)) //I want {size: 6, age: 20}

我想要上面的函数删除值为string的字段,而不是返回原始对象。

对于任何阅读本文/愿意提供帮助的人,提前致谢!

最佳答案

你需要做:

delete obj[Object.keys(obj)[i]] 

除了删除Object.keys(obj)[i]。现在,您只需删除检索到的值 name,而不是 obj 的属性 name,即 obj["name"]。这就是为什么它从未从 obj 中删除的原因。这是一个片段示例:

function removeString(obj) {

var propertyArray = Object.values(obj);            
for(var i = 0; i < propertyArray.length; i++)      
if (typeof propertyArray[i] === "string")   
  delete obj[Object.keys(obj)[i]]                                 
return obj;                                                                                       
}



var testObject = {size: 6, name: 'String', age: 20}

console.log(removeString(testObject)) 

关于javascript - 按索引删除 javascript 键/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42048438/

相关文章:

javascript - 在更改 BoostrapTable X-可编辑选择框时获取文本而不是值

string - Powershell-从字符串变量中提取第一个和第三个元素

javascript - Typescript 中动态创建函数的形式参数

perl - 如何有条件地定义 Perl 子程序?

javascript - React Link 标签阻止 flex-boxes 工作

javascript - setInterval 过早停止

javascript - 使用 JavaScript 动态加载 CSS 文件

java - 无法将 StringTokenizer 传递给多个方法

ruby - 如何(轻松)在 Ruby 中使用长度和分隔符拆分字符串

function - Pascal - 在定义之前使用过程