[英]How can I add omitable dynamic values to an array in Javascript?
I am adding dynamical values to my array from two tables (datatables.js) as in here: 我从两个表(datatables.js)向数组添加动态值,如下所示:
var formArray = {
"valueFromA0" : table1.row(0).data()[1],
"valueFromA1" : table1.row(1).data()[1],
"valueFromB0" : table2.row(0).data()[1],
"valueFromB1" : table2.row(1).data()[1]
};
These tables are also dynamically created. 这些表也是动态创建的。 So some of the values (or even all of them) can be empty.
因此,某些值(甚至所有值)可以为空。 I want to omit 'undefined'/empty values during the creation array.
我想在创建数组时忽略“未定义” /空值。 For example, say valueFromA1, valueFromB0 and valueFromB1 are undefined so it means there should be only one value in the array like this:
例如,说valueFromA1,valueFromB0和valueFromB1是未定义的,因此这意味着数组中应该只有这样一个值:
"valueFromA0" : "5" “ valueFromA0”:“ 5”
Try this: 尝试这个:
var formArray = {
"valueFromA0" : "7",
"valueFromA1" : undefined,
"valueFromB0" : "5",
"valueFromB1" : undefined
};
function removeEmptyEntries(obj)
{
for(var prop in obj)
{
if(obj.hasOwnProperty(prop) && !obj[prop])
delete obj[prop];
}
}
removeEmptyEntries(formArray);
console.log(formArray);
There is no way to do it with the object literal. 无法使用对象字面量执行此操作。
var formArray = {}, tmp;
if ((tmp = table1.row(0).data()[1]) !== undefined) formArray.valueFromA0 = tmp;
if ((tmp = table1.row(1).data()[1]) !== undefined) formArray.valueFromA1 = tmp;
...
Try utilizing Object.keys()
, Array.prototype.filter()
, Array.prototype.forEach()
; 尝试利用
Object.keys()
, Array.prototype.filter()
, Array.prototype.forEach()
; create new object , set properties where value not undefined
at formArray
object to new object 创建新对象,将
formArray
对象中undefined
值的属性设置为新对象
var formArray = { "valueFromA0" : 1, "valueFromA1" : 2, "valueFromB0" : undefined, "valueFromB1" : undefined }; // new `Object` var res = {}; Object.keys(formArray).filter(function(val) { // filter `formArray` object keys where value not `undefined` return formArray[val] !== undefined }).forEach(function(val) { // set properties , values at `res` res[val] = formArray[val]; }); console.log(res)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.