【发布时间】:2012-02-03 15:53:35
【问题描述】:
我在 nodejs 中使用 mongoose(指向 mongolab),当我执行 .findOne 并返回结果时,一个字段是 JSON 对象数组,但当我 console.log 得到数组时
[ [object Object], [object Object], [object Object], [object Object], [object Object] ]
当我复制数组的确切内容并手动创建它并 console.log 它时,我看到了所有 JSON。这听起来不是问题,但是当我尝试拼接返回的这个数组时,我遇到了问题。
console.log(arr.splice(0, 1));
输出
[ [object Object], [object Object], [object Object], [object Object] ]
所以它返回所有剩余的对象,而不是删除的对象。当我通过准确复制数组中导致问题的内容来创建数组拼接时,它工作正常(返回的元素是我删除的元素)。
我尝试在 for 循环中遍历数组并记录每个元素,并且 JSON 看起来很好。我有一个解决方法,但不应该做更多的事情来让它像它应该的那样工作......
// outputs [ [object Object], [object Object]... ]
console.log(s);
for (var i = 0; i < s.length; i++) {
if (i == start) {
el = s[i];
break;
}
}
s.splice(start, 1);
s.splice(end, 0, el);
for (var i = 0; i < s.length; i++) {
// outputs the JSON for each element
console.log(s[i]);
}
我还在 w3schools 上尝试了 array.splice 示例,以确保 splice 正常工作并且工作正常。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log("Removed: " + fruits.splice(2,1,"Lemon"));
console.log(fruits);
// OUTPUTS
Removed: Apple
Banana,Orange,Lemon,Mango
【问题讨论】:
标签: javascript arrays json node.js mongoose