Js对象映射

时间:2015-08-18 17:46:46

标签: javascript object

是什么?
var brackets = {
      '(': ')',
      '{': '}',
      '[': ']'
    };

从以下代码中做什么?你能举例说明这种物体的用途吗?我知道对象可以有方法和属性,但括号到对面的映射是什么意思?

// Use an object to map sets of brackets to their opposites
var brackets = {
  '(': ')',
  '{': '}',
  '[': ']'
};

// On each input string, process it using the balance checker
module.exports = function (string) {
  var stack = [];
  // Process every character on input
  for (var i = 0; i < string.length; i++) {
    if (brackets[stack[stack.length - 1]] === string[i]) {
      stack.pop();
    } else {
      stack.push(string[i]);
    }
  }

  return !stack.length;
};

2 个答案:

答案 0 :(得分:1)

此代码检查所有左括号是否在给定字符串中具有相应的右括号。这是面试中常见的编码练习。出于某种原因,雇主希望聘请具有良好Google搜索技能的开发人员。

答案 1 :(得分:0)

var brackets = {
  '(': ')',
  '{': '}',
  '[': ']'
};

上面的代码是名为括号的javaScript对象的定义。此对象具有三个设置为值的字符串字段。这些字段的名称恰好是&#39;(&#39;,&#39; {&#39;,&#39; [&#39;,这些值恰好是&#39;)& #39;,&#39;}&#39;,&#39;]&#39;分别。

他们可能是:

var brackets = {
  'ABC': ')',
  'XYZ': '}',
  'BBC': ']'
};

我认为你只是对变量的奇怪名称感到困惑。在这种情况下使用的是因为这是括号匹配代码。

要使用这些字段,您可以使用括号表示法:

var test = brackets['('];  

这将给出&#39;)&#39;的字符串值。到测试变量。

点符号:

brackets.(  

不会工作,因为它是一个特殊角色。更多信息:difference between dot notation and bracket notation in javascript