相关疑难解决方法(0)

为什么splice()方法改变了其他数组的值?

我有一个阵列说

var list = ["first", "second"];
Run Code Online (Sandbox Code Playgroud)

现在我将列表分配给其他变量说

var temp = list;
Run Code Online (Sandbox Code Playgroud)

现在,当我使用拼接的名单

list.splice(0,1);
Run Code Online (Sandbox Code Playgroud)

现在,当我检查它显示的列表的值时

list = ["second"]
Run Code Online (Sandbox Code Playgroud)

当我检查temp的值时,它说

temp = ["second"]
Run Code Online (Sandbox Code Playgroud)

我想知道为什么会这样?为什么temp的值会改变?

javascript arrays splice

2
推荐指数
1
解决办法
3657
查看次数

如何返回变量并同时重置/删除它

我有一个验证器库,它正在清理和验证字符串.验证器函数正在将消息推送到数组"errors",以查找它们找到的每个无效输入.

当所有输入的验证完成后,我会收集如下变量中的错误:

var errors = validator.getErrors();

// Function definition
Validator.prototype.getErrors = function () {
    return this._errors;
}
Run Code Online (Sandbox Code Playgroud)

var"errors"现在是一个包含0到几个字符串元素的数组.在此之后,我正在调用一个函数来清空验证器中的错误.

validator.clearErrors();

// Function definition
Validator.prototype.clearErrors = function () {
  this._errors = [];
}
Run Code Online (Sandbox Code Playgroud)

问题:我可以以某种方式重新编写getErrors()函数,这样它也是空的内部_errors变量吗?...然后我可以完全删除clearErrors函数.

javascript node.js express

1
推荐指数
1
解决办法
118
查看次数

js输出未排序的数组

我有下面的代码也在这个小提琴.
我列出了下面的输出和预期输出.我无法理解为什么我还没有对rNums进行排序但它仍然输出了sorterd结果?

如果我注释掉sort函数,则随机出现,但不是有序的.我在这做错了什么?

随机应该在nNums中显示,有序应该按数字顺序显示?

    <ul id="random"></ul>
    <ul id="ordered"></ul>

    <script>
    var rNums = [1,5,3,2,4];
    console.log(rNums);
    var sortRNums = rNums;

    sortRNums.sort(function (a, b) {
        return a - b
    });

    $.each(rNums, function (index, value) {
        $("#random").append('<li>' + value + '</li>');
    });

    $.each(sortRNums, function (index, value) {
        $("#ordered").append('<li>' + value + '</li>');
    });
    console.log(sortRNums);
    </script>
Run Code Online (Sandbox Code Playgroud)

产量

    <ul id="random">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
    </ul>

    <ul id="ordered">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
    </ul>
Run Code Online (Sandbox Code Playgroud)

预期产出

    <ul id="random">
            <li>1</li>
            <li>5</li>
            <li>3</li>
            <li>2</li>
            <li>4</li>
    </ul>

    <ul …
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting jquery

1
推荐指数
1
解决办法
902
查看次数

为什么我不能在JS中复制这个2d数组?我怎样才能复制?

我正在实施John Conway生命游戏,但我遇到了一个奇怪的问题.如果代码给我带来麻烦,这是一个简短的版本:

let lifeMap = [
  [true, false, false],
  [false, false, false],
  [false, false, false]
];
let oldLifeMap = lifeMap.slice();
for (let row = 0; row < lifeMap.length; row++) {
  for (let val = 0; val < lifeMap[row].length; val++) {
    let bool = lifeMap[row][val];
    let newBool = false; // here is where I would determine if cell is alive/dead
    lifeMap[row][val] = newBool;
    if (row === 0 && val === 0) console.log("at (0,0)", oldLifeMap[0][0]);
  }
}
Run Code Online (Sandbox Code Playgroud)

为了响应此代码,JavaScript打印at (0,0) false.我需要它一直 …

javascript arrays copy multidimensional-array conways-game-of-life

1
推荐指数
2
解决办法
492
查看次数

返回没有引用的javascript函数

在下面的代码中,我预计3个日志的结果将是相同的.

但他们不是.

var m = (function () {
  var arr = [
    {a: 1, b: 2}, 
    {c: 3, d: 4}
  ];

  return {
    getArr: function () {
      return arr;
    }
  };
})();

var myArr = m.getArr();

console.log(myArr);

myArr.pop();

console.log(m.getArr());
Run Code Online (Sandbox Code Playgroud)

确保数组不作为引用传递的最佳方法是什么?

return arr.map()吗?

javascript

0
推荐指数
1
解决办法
81
查看次数