【问题标题】:How to convert an integer array into string in javascript without losing the square bracket如何在javascript中将整数数组转换为字符串而不丢失方括号
【发布时间】:2014-10-28 18:37:50
【问题描述】:

我想访问对象属性。我无法在数组周围没有单引号的情况下访问键值。当我手动输入单引号时,它会返回值。但是如何自动放置单引号。 java脚本中是否有任何功能。如果我使用 String() 函数转换为字符串,我会丢失方括号。这是我的代码:

var seen = {'[7, 6]': '[0, 0]'}
function getParent(childState){
        //"""return parent of state, if it exists"""
        if(childState in seen){ return seen[childState]; }
        else{ return undefined; }
};
getParent([7, 6]);

【问题讨论】:

  • seen 是一个键值对。 '[7, 6]' 是键,'[0, 0]' 是值。因此,只有当您将密钥传递为 '[7, 6]' 时它才会起作用
  • 你必须手动添加括号,还要考虑空间,有点像'['+[7,6].join(', ')+']'
  • 感谢 musa,它可以手动添加括号......但看起来很奇怪
  • @AmalHashim 我寻求一种更简单的方法来做到这一点。如果我转换为字符串,我会丢失方括号和整数之间的间距

标签: javascript arrays integer


【解决方案1】:

为了使用属性访问器,您需要提供一个字符串。这意味着您的 seen 对象中的 keys 需要采用字符串格式。如果要使用数组与 getParent() 进行交互,则应首先将参数转换为字符串。但是seen 对象中的值仍然可以是数组。

var seen = {'7,6': [0, 0]}
function getParent(childState){
    var key = childState.toString();
    return seen[key];
};
getParent([7, 6]);

【讨论】:

  • 有什么简单的方法可以将 [7, 6] 转换为 '[7, 6]' @StriplingWarrior
  • @SudheeshKs:是的,但我不明白你为什么要这样做:'[' + childState.join(', ') + ']'
【解决方案2】:

您可以检测是否传递了一个数组并手动构建字符串键

if(typeof childState =="object"){
   childstate = "[" + childState.toString() + "]";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    相关资源
    最近更新 更多