【问题标题】:Does anybody know an alternative for php's `$a['mykey'][] = $a` in JavaScript? [closed]有人知道 JavaScript 中 php 的 `$a['mykey'][] = $a` 的替代方法吗? [关闭]
【发布时间】:2020-06-27 11:25:32
【问题描述】:

基本上我想推送值或创建一个数组并通过循环将值添加到动态创建的键中。我可以使用[] 运算符在 PHP 中巧妙地做到这一点。

      foreach($array => $value){
           $ret['mykey'][] = $value
      }

如果不存在,这将创建一个数组并将$value 推送到它。 我希望对 JavaScript 做同样的事情。

编辑 到目前为止,我的方法是使用条件定义,然后使用数组推送。

    if(!ret['mykey']){
         ret['mykey] = []
    }
    ret['mykey'].push(value)

我正在寻找在一行语句中的替换。

PS:我相信对象是 javascript 对 PHP 关联数组的类比替代。如果我认为不对,请纠正我。

【问题讨论】:

  • 请告诉我们您到目前为止尝试了什么以及哪里出了问题。
  • 我在问题正文中更新了我的方法。 @MagnusEriksson

标签: javascript php arrays json ecmascript-6


【解决方案1】:

类似的东西。你做出相应的改变。

x = ( typeof x != 'undefined' && x instanceof Array ) ? x : []

//or

var arr = arr || [];

【讨论】:

  • 这是定义如果没有定义。如果没有在一个语句中定义,我正在寻找可以神奇地定义并将值推送到数组的东西。有点像我建议的 PHP。我也知道我可以这样做:if(!ret['mykey']) ret['mykey] = [] 然后ret['mykey'].push(value)
  • @RishabhJha - 你似乎已经知道该怎么做?请向我们展示您的尝试并解释失败的地方。
  • 是的,当然,你可以做到。这取决于你的目的。
【解决方案2】:

类似...

检查索引是否存在作为对象中的键,如果不存在则将其添加为键并分配给它空白数组。

let a = {};
let index = 'mykey';
for (let i = 0; i <= 10; i++) {
    if (typeof a[index] == 'undefined' || !(a[index] instanceof Array))
        a[index] = [];
    a[index].push(i + 10);
}
console.log(a);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    相关资源
    最近更新 更多