gpt4 book ai didi

javascript - 如何将结构添加到作为数据库查询结果创建的对象

转载 作者:搜寻专家 更新时间:2023-10-30 20:53:11 25 4
gpt4 key购买 nike

我有一些从 Taffy 数据库中提取的代码,用于创建一个对象,然后对其进行迭代。在以前的版本中,对象中元素的顺序是一致的(虽然我意识到这在js中是不能保证的),所以我是通过this[0],来访问它们的this[1] 等。在新版本中(显然是由于 Taffy 错误,https://github.com/typicaljoe/taffydb/issues/109),这种行为是不可靠的,所以我想知道是否有更健壮的方法来构造信息并检索它。一个最小的例子:

var stuffWeCite = TAFFY([{
"first": 1,
"second": 2,
"third": 3,
"fourth": 4
}]);

var filterVar = {"first":1};
var someVar = stuffWeCite()
.filter(filterVar)
.select("first", "second", "third", "fourth");

console.log('someVar: ' + someVar);

以前,结果会显示 1、2、3、4,但行为已更改。

如果我将查询的元素一个一个地输入到一个对象中,我会为它们分配属性(“first”、“second”等),然后稍后调用它们,但是选择它们的方式似乎排除了这一点。从数据库查询创建对象时,有没有一种方法可以将属性分配给值?

最佳答案

我不知道太妃糖,但对于此类问题,我使用数组助手,正如您提到的对象键的顺序在 javascript 中不可靠。您可以声明一个数组,该数组按照您想要使用的顺序保存对象的键,然后迭代它以从对象中按顺序获取值:

var stuffWeCite = TAFFY([{
"second": 2,
"first": 1,
"fourth": 4
"third": 3,
}]);

var array = ['first', 'second', 'third', 'fourth'];

array.forEach(function(item) {
console.log(stuffWeCite[item]);
});

或使用 for 循环:

var stuffWeCite = TAFFY([{
"second": 2,
"first": 1,
"fourth": 4
"third": 3,
}]);

var array = ['first', 'second', 'third', 'fourth'];

for (var i = 0, l = array.length; i<l; i++) {
console.log(stuffWeCite[array[i]]);
}

为了遍历从数据库接收到的对象集,考虑到没有。您要使用的字段数量很少,因此没有必要迭代数组:

var friendsInSeattle = friends({city:"Seattle, WA"});
var fieldsInOrder = ['id', 'gender', 'first', 'last'];

friendsInSeattle.forEach(function(friend) {
console.log({
fieldsInOrder[0]: friend(fieldsInOrder[0]),
fieldsInOrder[1]: friend(fieldsInOrder[1]),
fieldsInOrder[2]: friend(fieldsInOrder[2]),
fieldsInOrder[3]: friend(fieldsInOrder[3])
});
});

当然你可以在迭代字段数组的同时构造对象,如果你有更多的字段,或者将来字段可能会发生变化。希望这会有所帮助。

关于javascript - 如何将结构添加到作为数据库查询结果创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com