- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
鉴于我的核心数据是这样的:
var data = [
{ name: "Student01", type: "received", grades: [ 12,12, 17, 17, 14.5, 10, 16, 15.5, 15.5, 15 ] },
{ name: "Student02", type: "given", grades: [ 11,6,15, 12 ] },
{ name: "Student03", type: "received", grades: [ 12,12, 17, 17, 14.5, 10, 16, 15.5, 15.5, 15 ] },
{ name: "Student04", type: "given", grades: [ 12,8,13, 12 ] }
];
给定一个我应该尊重的模板对象:
var template = {
text: "Hello guys !",
side: "negative",
name: "Some student",
x: [ 12.65, 17.92, 16.45 ],
orientation: "h"
};
然后我通过 for 循环构建一个 augmentedData
:
var augmentedData = [];
for (var i=0; i<data.length;i++){
var trace = template,
student = data[i];
trace.text = "Step "+i;
trace.name = student.name;
trace.x = student.grades;
console.log(student, student.type)
trace.side = student.type == "given"?"negative":"positive";
console.log(vizGrades[i].type, trace, trace.side)
augmentedData.push(trace);
}
我的最终扩充数据由最后一个对象的 4 倍组成,它本身是扩充的:
console.log(JSON.stringify(augmentedData));
返回:
[
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"},
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"},
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"},
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"}
];
出了什么问题?如何解决?
编辑:预期输出:
[
{"text":"Step 0","side":"positive","name":"Student01","x":[12,12, 17, 17, 14.5, 10, 16, 15.5, 15.5, 15],"orientation":"h"},
{"text":"Step 1","side":"negative","name":"Student02","x":[11,6,15, 12],"orientation":"h"},
{"text":"Step 2","side":"positive","name":"Student03","x":[12,12, 17, 17, 14.5, 10, 16, 15.5, 15.5, 15],"orientation":"h"},
{"text":"Step 3","side":"negative","name":"Student04","x":[12,8,13,12],"orientation":"h"}
];
最佳答案
trace = template
行仅传递对来自模板的 trace 的引用,因此您在循环中一直使用同一个对象。
尝试
var template = function() {
return {
text: "Hello guys !",
side: "negative",
name: "Some student",
x: [ 12.65, 17.92, 16.45 ],
orientation: "h"
};
}
因此 trace
每次使用 trace = template();
时都会成为一个新对象
关于javascript - 通过 for 循环扩充数组只保留最后一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50155239/
我正在尝试填充一个 ListView ,其中每一行都有 2 个 TextView 和一个按钮。我想我几乎让它正常工作,但现在 ListView 只显示 ListView 中的 1 个项目并忽略其他数据
是否可以通过向 DOM 元素添加新属性来扩充普通 JavaScript 对象?例如,我们能否为按钮或输入添加一个新属性,比如一个指示用户最后一次点击它的时间的值? 最佳答案 是的。有时您会发现它被描述
我的要求是能够快速检索树中的最小值和最大值。 (注意,不是最小/最大 key ,而是卫星数据的最小/最大)。 树将基于字符串作为键,每个节点将存储一个整数。这个整数必然会改变并不断更新。键保持固定 我
我正在浏览 Introduction to Algorithms by Cormen第 14 章(增强数据结构),他在其中谈论区间树。下面是他提到的区间树背后的设计方法。 Step 1: Underl
我知道如何为每个对象添加新方法 - 通过扩充对象的原型(prototype): Object.prototype.foo = function() { }; 但是,是否可以只为 DOM 元素节点定义
我正在开发一个已经在 Kaggle 实现的项目这与图像分类有关。我总共有 6 个类别要预测,分别是愤怒、快乐、悲伤等。我已经实现了 CNN 模型,目前仅使用 4 个类别(图像数量最多的类别),但我的模
在我的 NativeScript 项目中,我想包含来自 Android 支持库的 RecyclerView。我将依赖项包含在 app/App_Resources/Android/app.gradle
我正在创建一个使用 twitter api 的应用程序。 我正在检索推文并向用户展示。 在某些情况下,推文有链接,如下图所示。 阅读 twitter 的 api 文档,我发现了一个叫做“增强 URL
我正在阅读JavaScript the good parts这本书,看到了以下代码: Function.prototype.method = function (name, func) { this
我有一个按钮 View 。我是否必须将它包装在 Layout 中以便能够在 Activity 中膨胀它的实例? View 是否有类似的模式,以便我可以声明性地设置一次,然后创建它的多个实例? 谢谢。
我在数据库的 BLOB 字段中有一个 zip 流。我正在尝试给它充气,但到目前为止还做不到。 问题是这个流是一个压缩流,而不是一个完整的压缩文件。 如果清楚的话,这将是对其进行膨胀的 Java 代码:
我是一名优秀的程序员,十分优秀!