我有一个带有一些键:值对的对象。我想将对象插入数组,但没有空对象值。
我的 fiddle :https://jsfiddle.net/howw1fj7/
var myData = [];
var myObj = {
product: "phone",
quantity: 100,
color: "red",
secondColor: '',
imei: "43904325"
};
myData.push(myObj); //push only not empty key:values
$('pre').html(JSON.stringify(myData, null, 4));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre></pre>
我尝试过类似的方法,但这是不正确的:
$.each(myObj, function(key, value) {
if(value.length !=0) {
var myNewObj = {key:value};
myData.push(myNewObj);
}
});
最佳答案
您可以定义一个实用方法Object.filter
,如in my answer here所述。 .
然后你会得到这个:
Object.from = arr => Object.assign(...arr.map( ([k, v]) => ({[k]: v}) ));
Object.filter = (obj, predicate) => Object.from(Object.entries(obj).filter(predicate));
var myData = [];
var myObj = { product: "phone", quantity: 100, color: "red", secondColor:'', imei: "43904325" };
myData.push(Object.filter(myObj, ([k, v]) => v !== ''));
console.log(myData);
关于javascript - 如何使用jquery将非空键值对象插入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447307/