从JavaScript对象获取值,如果属性的前8位与参数匹配?

从JavaScript对象获取值,如果属性的前8位与参数匹配?,javascript,object,Javascript,Object,这里我需要从JavaScript对象获取一个值,如果属性的前8位与参数匹配 这是我尝试过的 var input = { 4546546512349: {}, 7200000000007: {}, 9399543200000: {} } function find_key(query){ $.each(input, function(k, v) { if (k.substring(0,8) == query){ console.log(k); return k

这里我需要从JavaScript对象获取一个值,如果属性的前8位与参数匹配

这是我尝试过的

var input = { 4546546512349: {}, 7200000000007: {}, 9399543200000: {} }
function find_key(query){
  $.each(input, function(k, v) {
    if (k.substring(0,8) == query){
      console.log(k);
      return k        
    }  
  });
}
find_key(45465465);
有什么最好的解决办法吗。提前感谢。

一个带有的解决方案。它返回一个包含匹配键的数组

函数findKeyquery{ 返回Object.KeyInput.filterfunction k{ 返回k.substring0,8==query; }; } 变量输入={4546546512349:{},7200000000007:{},9399543200000:{}
文件。书写 您的代码已经可以工作了,但是如果您正在寻找更简洁的解决方案,那么

做了一个根本性的改变

将输入作为参数传递,以使其更可重用
适合我--您在页面中包含jquery了吗?当然,如果您想返回值而不是键,则需要使用return v。您应该解释什么不适合您。问题是console.logk;不会显示您正在查找的密钥,或者您是否有问题返回k不会从find_密钥返回内容?@Rhumbo从回调返回在这里没有多大意义,因为它不会有任何效果,除非它是false。可能重复@dear Downvorters-我如何提高此答案的质量?
function find_key(input,query)
{ 
   return input[Object.keys(input).filter( function(value){ if (value.indexOf( "45465465" ) == 0) {return value;}})[0]];
} 
var input = { 4546546512349: {}, 7200000000007: {}, 9399543200000: {} };
find_key(input,45465465);