我有一个对象,我希望在当月/之前使月份为假。
在:
var oObj = {
"isJan" : true,
"isFeb" : true,
"isMar" : true,
"isApr" : true,
"isMay" : true,
"isJun" : true,
"isJul" : true,
"isAug" : true,
"isSep" : true,
"isOct" : true,
"isNov" : true,
"isDec" : true
}
今天是5月4日,因此对象应该是:
{
"isJan" : false,
"isFeb" : false,
"isMar" : false,
"isApr" : false,
"isMay" : true,
"isJun" : true,
"isJul" : true,
"isAug" : true,
"isSep" : true,
"isOct" : true,
"isNov" : true,
"isDec" : true
}
答案 0 :(得分:1)
试试这个
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
/*var inputObj = {
"isJan": true,
"isFeb": true,
"isMar": true,
"isApr": true,
"isMay": true,
"isJun": true,
"isJul": true,
"isAug": true,
"isSep": true,
"isOct": true,
"isNov": true,
"isDec": true
};*/
var currentMonth = new Date().getMonth();
var outputObj = {};
months.forEach( function(key, index){
outputObj[ "is" + key ] = ( index <= currentMonth );
});
console.log( outputObj );
&#13;
答案 1 :(得分:0)
您可以使用其他人显示的for-in循环。但是,您还需要确保获得的密钥是对象的实际属性,并且不是来自原型:
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}
希望这会有所帮助!
答案 2 :(得分:0)
您可以这样做:
var keys = Object.keys(oObj)
以数组格式提供所有键。然后你可以使用简单的for循环来解析它。
for(var i=0; i<keys.length; i++){
var individual_obj = oObj[key[i]] ;
// set your conditions here
}
答案 3 :(得分:0)
使用$result = DB::select('select distinct... where coursedetails.courseID = ? ', [$courseID]);
,Object.keys()
和Array.prototype.indexOf()
函数的解决方案:
String.prototype.slice()
答案 4 :(得分:-1)
就是这样。
var oObj = {
"isJan": true,
"isFeb": true,
"isMar": true,
"isApr": true,
"isMay": true,
"isJun": true,
"isJul": true,
"isAug": true,
"isSep": true,
"isOct": true,
"isNov": true,
"isDec": true
}
var k = Object.keys(oObj);
var month = new Date().getMonth() + 1;
console.log(i);
for (var i = 0; i < month; i++) {
oObj[k[i]] = false;
}
console.log(oObj);
答案 5 :(得分:-1)
你需要做两件事
循环对象
您可以使用Object.keys
获取对象键的数组
在循环中创建条件
在当前月份之前检查对象键中的月份。为此,您可以使用getMonth
object
Date
函数
醇>
示例:强>
const oObj = {
"isJan" : true,
"isFeb" : true,
"isMar" : true,
"isApr" : true,
"isMay" : true,
"isJun" : true,
"isJul" : true,
"isAug" : true,
"isSep" : true,
"isOct" : true,
"isNov" : true,
"isDec" : true
}
const now = new Date();
const currentMonth = now.getMonth();
const keys = Object.keys(oObj);
for (var i = 0; i < keys.length; i += 1){
oObj[keys[i]] = currentMonth < i;
}
console.log(oObj);
&#13;