【发布时间】:2015-12-26 07:07:21
【问题描述】:
我经常遇到需要动态创建一个包含特定数据的对象数组,这也需要一个搜索方法,例如:
Javascript
var people = [];
var addPerson = function(name, age) {
people.push({name:name,
age:age});
}
getArrayID = function (name) {
for(var i = 0 ; i < main.nodes.length ; i++) {
if(main.nodes[i].name == name)
return i;
}
return -1;
}
addPerson("Person A", 22);
addPerson("Person B", 23);
console.log(people[getArrayID("PersonB")].age);
// Result: 23
虽然这可行,但感觉它是解决“标记”数据问题的不正确解决方案,因为它通常还包含 getArrayName(id) 方法。
如果可能的话,我希望看到使用像 Javascript 这样的“松散”语言(对象和数组可以用字符串命名)和像 这样更严格的语言的解决方案>C++ 或 Java。
【问题讨论】:
-
要求这是两种不同的语言并不是一个好主意。这就像在一个问题中提出两个问题,这意味着你会得到一些更关注一个问题的答案,而另一些则更关注另一个问题。为什么不先询问一种语言,然后,如果仍然需要且有意义,请针对另一种语言发布第二个问题?
-
欢迎来到 SO。请访问help center 看看在这里问什么。因此,它是题外话,可能属于 codereview
-
@jogojapan 我对简化的解决方案以及处理此问题的常用方法都感兴趣,因为我认为这是任何使用动态数组的程序中的常见功能。我是一名自学成才的程序员,所以学习解决方案以及解决方案背后的理论让我很感兴趣,这不仅仅是看看如何用 X 和 Y 语言来做,而是从计算机科学的角度来看,这将是最好的实施。
标签: javascript c++ arrays dynamic