我有一个function filterArgReturnEvenElements(el) {
return (typeof el === 'number') && !(el % 2);
}
function returnKeyWithArrayValue(arg, key){
return arg[key] instanceof Array;
}
function iterateThroughElements(arg, myFunc){
// if arg is an Array
if (arg instanceof Array) {
// if function exist then call specific function or callback
if(myFunc && typeof(myFunc) == "function"){
return arg.filter(myFunc);
// else if function doesnt exist, iterate through array and console.log all the items
}else{
arg.forEach(item => console.log(item));
}
}
// if arg is an Object
else if(arg instanceof Object) {
// if function exist then call specific function or callback
if(myFunc&& typeof(myFunc) == "function"){
return Object.keys(arg).filter(key => myFunc(arg, key));
// else if function doesnt exist, iterate through object and console.log all the items
}else{
for(key in arg){
if(arg.hasOwnProperty(key)){
console.log(key + " : " + arg[key]);
}
}
}
}
let arr = [1, 2, 3, 4, 5, 7];
let obj = {
firstname: 'mik',
lastname: 'lasner',
age: 21,
favorite: ['hiking', 'surfing', 'beach']
};
let output = iterateThroughElements(arr, filterArgReturnEvenElements);
console.log(output);
let output2 = iterateThroughElements(obj, returnKeyWithArrayValue);
console.log(output2);
let output3 = iterateThroughElements(arr);
console.log(output);
let output4 = iterateThroughElements(obj);
console.log(output2);
函数,它接受一个数组或一个对象作为第一个参数。第二个参数有一个可选函数。
如果用户没有传入函数second参数,它将遍历元素和控制台记录所有元素。
如果用户传入函数,它将完全按照函数执行的操作。
这是我的代码:
filterArgReturnEvenElements
如上所示,returnKeyWithArrayValue
函数将返回数组中偶数的项。
虽然{{1}}函数将返回具有数组值的对象中的键。
现在我的代码不起作用。你认为我哪里出错?请帮忙!
有更好的方法吗?
答案 0 :(得分:2)
您错过了一个括号,并且未定义callBack变量。
add_action( 'getmyevents', 'get_my_events' );
function get_my_events( $atts = [], $content = null ) {
global $wpdb;
// Values sent via ajax to calendar from my_events table
// List of events
$json = array();
// Query that retrieves events
$mytable = $wpdb->prefix . "my_events";
$myids = $wpdb->get_results( 'SELECT id, title, url, DATE_FORMAT( start, "%Y-%m-%d\T%H:%i:%s" ) as start, DATE_FORMAT( end, "%Y-%m-%d\T%H:%i:%s" ) as end, allDay FROM ' . $mytable );
// sending the encoded result to success page
echo json_encode( $myids, JSON_UNESCAPED_SLASHES );
// return JSON
return $json;
}