gpt4 book ai didi

javascript - 忽略对象中未定义的值

转载 作者:行者123 更新时间:2023-11-30 12:54:14 24 4
gpt4 key购买 nike

我在 Javascript (Node.js) 中创建了一个将数据保存到数据库的函数。我正在传递一个具有不同数据字段的对象,但不确定该对象是否定义了该函数使用的每个数据字段。

   var obj = {value1: '1', value2: '2'}

function(obj) {

mongooseDoc = new Doc({
value1: obj.value1,
value2: obj.value2,
value3: obj.value3,
value4: obj.value4,
value5: obj.value5.value6
}

}

这会报错,因为 obj.value3 - 6 是未定义的。您如何编写此代码,以便在不必使用 3 个 if 语句的情况下不会出错?您是否必须先声明具有所有可能值的整个对象,还是有更简洁的方法?

*更新:在这种情况下,当 value5 未定义时,您如何处理 value6? *

最佳答案

试试这个:<强> JSFIDDLE DEMO

var obj = {value1: '1', value2: '2'};

function hello(obj) {

var Doc = {
value1: obj.value1 || "",
value2: obj.value2 || "",
value3: obj.value3 || "",
value4: obj.value4 || "",
value5: obj.value5 || ""
};
console.log(Doc);
alert(Doc);

}

hello(obj);

建议使用 Underscore.js很棒的 JS 库可以使用

带下划线的更新

var obj = {value1: '1', value2: '2'};

function hello(obj) {

var mongooseDoc = _.clone(obj);
console.log(mongooseDoc);
alert("Please See in Console:" + mongooseDoc);

}

JSFIDDLE DEMO

多个对象的另一个更新:

var obj1 = {value1: '1', value2: '2'};
var obj2 = {value3: '3', value4: '4'};

function hello(obj1,obj2) {

var mongooseDoc = _.extend(_.clone(obj1),_.clone(obj2)); //list goes here
console.log(mongooseDoc);
alert("Please See in Console:" + mongooseDoc);

}

hello(obj1,obj2);

JSFIDDLE DEMO

关于javascript - 忽略对象中未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824168/

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