两个处理程序以相同的方式处理数据并获得不同的输出

时间:2017-11-22 16:46:38

标签: javascript arrays angularjs

更新2 这似乎是Deam Edwards JS Packer的PHP端口的一个问题。我使用的是2008年最后一次更新的version on github。这是我能找到的唯一一个版本,看起来似乎有些工作或不工作。例如:

console.log("Return character: " + ("\n".charCodeAt(0)));

没有正确包装它显示10.包装时,它在两个不同的地方显示124或115,没有明显的原因。

我会留下这个问题,除非有大力推动删除它。

原帖

我有一段代码调用API来获取一组团队,每个团队都有一个成员数组并处理撤回的数据。

我遍历每个团队并将成员组合成一个字符串,以便稍后我可以在文本区域中使用它,我想要每行一个成员。这是处理:

$scope.teams[i].memberList = ($scope.teams[i].members).join("\n");
console.log("Got text area stuff");
console.log($scope.teams[i].members);
console.log($scope.teams[i].memberList);

此代码适用于其他地方,但是当我在此处调用时,我会在控制台中获得以下内容:

Console output

基于控制台输出的演绎逻辑是:

  • 您可以清楚地看到$scope.teams[i].members是一个包含3个字符串的数组。
  • 可以假设array.join("\n")将添加回车
  • ''来自文本输出?

以下是结果中的修改对象:

More detail

我错过了什么?

如果我加入", ",我会收到我期待的字符串:aaa, bbb, ccc

更新

我写了一个简单的joiny函数,看看我是否可以覆盖我认为是覆盖的东西:

Array.prototype.myJoin = function(str) {
    var ret = "";
    for(var i = 0; i < this.length; i++) {
        if(i > 0) {
            ret = ret + str;
        }
        ret = ret + this[i];
    }
    return ret;
};

它仍然返回与之前完全相同的东西,将其写在上面的相同位置:

console.log(["a","b","c"].myJoin("\n"));

控制台显示asbsc

0 个答案:

没有答案