【问题标题】:Is there a function like the php function key() in JavaScript/jQuery?JavaScript/jQuery 中是否有类似 php 函数 key() 的函数?
【发布时间】:2013-12-11 21:29:28
【问题描述】:

我通过<?php echo json_encode($my_array); ?> 将一个多维数组传输到 JavaScript 中,并且我想将该 JSON 的条目与其他变量进行比较。那么如何在没有子条目的情况下将对象作为字符串获取呢?

假设我的对象是[Object { 1429={Object { 8766={...}, 8483={...}, 7345={...}}}}, Object { 9041={...}}]

那么我怎样才能得到 1429 或 8766 作为字符串呢?我知道如何用 PHP 中的多维数组来做到这一点(它是 key())——但它在 JavaScript 中会是什么?

【问题讨论】:

  • 在 PHP 中,key() 函数只返回当前由内部指针指向的数组元素的键。 js对象中没有内部指针。您希望关键功能做什么?
  • JavaScript 没有“数组指针”的概念(我很少在 PHP 中使用它)。但我无法弄清楚您的对象/数组是什么样子(发布假 JSON 没有帮助)以及哪些规则让您在 14298766 之间进行选择。可以发一些真实的代码吗?
  • 如果你想在遍历一个对象时获得关键,那么可以用JS/jQuery来完成。发布您的循环,我们可以提供帮助。

标签: jquery json object key


【解决方案1】:

在 PHP 中,key() 函数只返回当前由内部指针指向的数组元素的键。

例如(来自手册):

<?php
 $array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');

// this cycle echoes all associative array
 // key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
    echo key($array).'<br />';
}
next($array);
}
?>

js中没有像object中的internal pointer这样的东西,所以没有类似的功能。

【讨论】:

  • 啊好吧!谢谢!那我得另找办法了。
【解决方案2】:

只是我认为你想要的一个例子。您可以对此进行更多扩展。

var obj = {
    "5": "some",
    "8": "thing"
};
var keys = $.map(obj, function (value, key) {
    return key;
});
//result keys: ["5", "8"]

JSFIDDLE DEMO - 打开控制台查看结果。

【讨论】:

  • 谢谢!我的 json 格式不正确 - 所以在我的情况下它只返回 [0, 1] 因为我需要它作为我数组中的最高级别,而不是最低级别。
猜你喜欢
  • 2011-10-26
  • 2011-03-27
  • 2011-08-01
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
相关资源
最近更新 更多