如何检查对象的键是否以特定字符开头?

6

我只想检查一个对象的键是否以特定前缀开头。例如:

var obj = {
  456: "Hello",
  512: "Bye"
}

//what I want to do with the object

if (obj.key starts with 4) {
  // do this....
} else {
  // do this...
}

好的,你尝试了什么? - Mitya
1
对象键是字符串,有什么问题吗? - Teemu
是的,您随时可以进行实验!!! - Krishna Prashatt
7个回答

12
Object.keys(total).filter(k => k.startsWith('your-specific-chars'))

5

您可以获取密钥并进行测试。

var object = { 456:"Hello", 512:"Bye" },
    key;
    
for (key in object) {
    if (!key.startsWith('4')) continue;
    console.log(key, object[key]);
}


0
你可以使用 Object.keys 将对象转换为一个数组,其中键作为其元素,并通过迭代它来检查键是否以 4 开头,使用 substr 方法。

var obj = {
  456: "Hello",
  512: "Bye"
}

Object.keys(obj)
      .forEach(e => e.substr(0, 1) == 4 ? console.log(e + ':' + obj[e]) : false)


0

你可以简单地使用startsWith

var obj = { 456:"Hello",  512:"Bye" }

Object.keys(obj).forEach(e => {
  e.startsWith('4') ?  console.log('start with 4 -->', e)
                    :  console.log('Do not start with 4 -->', e)
})


0
这有帮助吗?

var obj = {
  456: "Hello",
  512: "Bye"
}

Object.keys(obj).forEach(elem => {
  if (elem.charAt(0) == 4) {
    console.log(elem, obj[elem])
  }
  //else {}
});


0

您可以使用索引读取字符串,就像读取数组一样:

var object = { 456 : "Hello", 512 : "Bye" };
for (var key in object) {
  if (key[0] === "4") {
    console.log(key + " starts with 4");
  } else {
    console.log(key + " does not start with 4");
  }
  console.log("object[" + key + "] gives \"" + object[key] + "\"");
}


-1

var obj = { 
456:"Hello",
512:"Bye",
444:"good morning"
}


Object.keys(obj).forEach(function(key){
    if(key.startsWith('4'))
        console.log(key, obj[key]);

})

你可以试一下这个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接