【问题标题】:javascript push key valuejavascript推送键值
【发布时间】:2012-05-15 18:52:20
【问题描述】:

在我看来,我想在数组上推送一个键值。

例如在 PHP 中是这样完成的:

$err = array();
function check($k,$v) {
  $err[$k] = $v; 
}

这在 JavaScript/jQuery 中究竟是如何完成的?

【问题讨论】:

  • @FelixKling - 任何字符串作为参数发送

标签: php javascript jquery arrays key-value


【解决方案1】:

Object 中的 JavaScript 键/值对支持,Array

插入元素:

var arr= [1,2,3],
    result = {};

for(var key in arr) {
   result[key] = arr[key]; // in this case key will be 0,1,2 i.e index of array element
}

检查密钥是否存在:

function checking(k, v) {
  if(result.k != null || result.k !=  undefined) {
    // do something
  }
}

根据你的功能:

var err = {}; // not array, should be object
function check(k,v) {
  err[k] = v; // or err.k = v;
}

更多关于插入:

var x = [];

x.some = 'some'; // OK; arrays are objects
x['some'] = 'some'; // exactly the same

获取价值:

x.home; // give 'some'
x['home']; // give 'some'

计数长度:

如果你想得到一个数组的长度,你必须使用.length

例如:

x.length; // will return 1

如果你想计算一个对象的长度:

var obj = {a: 'XYZ', b: 'PQR'};

Object.keys(obj).length; // will return 2

删除项目:

如果你想从一个对象中删除一个项目:

delete obj[key];

从数组中删除一个项目:

delete arr[index]; // index is position of the element within array

也可以删除数组元素

arr.splice(0,2); // splice(index, howmany, [item1, item2, ...., itemx])
                 // in this example from start 2 items will delete

【讨论】:

  • 恭喜你。再问一问,JS 中的 php count() 等价物是什么?我测试了 .length 不适合这里。
【解决方案2】:

你使用一个对象。并以大致相同的方式进行。

var $err = {};
function check($k, $v) {
     $err[$k] = $v;
}

当然,这不是一个数组。

请注意,您实际上可以在 Javascript 数组中执行此操作,并且解释器会允许您这样做。

var $err = []; // an array
function check($k, $v) {
    $err[$k] = $v;
}

但您并没有真正推动数组,而是扩展数组object。你可以用这个检查一下:

var foo = [];
foo['hello'] = 'world';

console.log(foo);            // []
console.log(foo['hello']);   // 'world'
console.log(foo.hello);      // 'world'
console.log(foo.length);     // 0

...所以最好注意这个问题。 :D

【讨论】:

  • 您现在可以删除$。 JS 中不需要它:D
  • @Joseph ~ 是的,我知道。但它增加了戏剧性的,哦,天哪,如此相似的效果! dun duuuuuun!:D
  • @RichardNeilIlagan Gracias por esta。再问一问,JS中的phpcount()相当于什么?我测试了.length 不适合这里。
  • 对于数组,这相当于.length。但对于物体来说,那是完全不同的野兽。此处已提出相同的问题,因此最好检查那里发布的解决方案。 stackoverflow.com/questions/126100/…
猜你喜欢
  • 2011-12-10
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多