问题描述
我有一个数组,其中包含一组没有空格的值,因此我想找到该值并将其替换为空格 例如:
dateOfJoining --> 加入日期
就业状况 --> 就业状况
<?PHP
require("../database_android.PHP");
if(isset($_POST["package_name"]) && $_POST["package_name"] != "") {
$package_name = MysqL_real_escape_string($_POST["package_name"]);
} else {
echo "package_name missing";
return;
}
if(isset($_POST["app_name"]) && $_POST["app_name"] != "") {
$app_name = MysqL_real_escape_string($_POST["app_name"]);
} else {
echo "app_name missing";
return;
}
if(isset($_POST["activity"]) && $_POST["activity"] != "") {
$activity = MysqL_real_escape_string($_POST["activity"]);
} else {
echo "activity missing";
return;
}
if(isset($_POST["activity_name"]) && $_POST["activity_name"] != "") {
$activity_name = MysqL_real_escape_string($_POST["activity_name"]);
} else {
echo "activity_name missing";
return;
}
if(isset($_POST["component_info"]) && $_POST["component_info"] != "") {
$component_info = MysqL_real_escape_string($_POST["component_info"]);
} else {
echo "component_info missing";
return;
}
$application_id = already_exists_application($package_name);
if($application_id < 0) {
MysqL_query("INSERT INTO androidactivities_application (package_name,app_name) VALUES ('". $package_name ."','". $app_name ."')");
$application_id = already_exists_application($package_name);
}
$componentinfo_id = already_exists_componentinfo($application_id,$component_info);
if($componentinfo_id < 0 && $application_id > 0) {
MysqL_query("INSERT INTO androidactivities_componentinfo (application_id,activity,activity_name,component_info) VALUES ('". $application_id ."','". $activity ."','". $activity_name ."','". $component_info ."')");
echo "successful";
} else {
echo "exists";
}
?>
<?PHP
function already_exists_application($package_name) {
$result = MysqL_query("SELECT * from androidactivities_application WHERE package_name = '".$package_name."'");
if($row = MysqL_fetch_object($result)) {
return $row -> application_id;
}
else {
return -1;
}
}
function already_exists_componentinfo($application_id,$component_info) {
$result = MysqL_query("SELECT * from androidactivities_componentinfo WHERE application_id = '".$application_id."' AND component_info = '".$component_info."'");
if($row = MysqL_fetch_object($result)) {
return $row -> componeninfo_id;
}
else {
return -1;
}
}
?>
它总是返回 let attributes =["dateOfJoining","employmentStatus"]
let filtered = attributes.filter((item) => {
if (item === 'dateOfJoining') {
item = 'Date Of Joining';
}
if (item === 'employmentStatus') {
item = 'Employment Status';
}
return item;
});
但它需要像 filtered =["dateOfJoining","employmentStatus"]
一样返回。
我尝试过上述方法,但没有按预期返回值。 他们无论如何要解决这个问题吗?
解决方法
对于此用例,您可以更好地使用 forEach
方法。
请参见下面的示例:
let attributes =["dateOfJoining","employmentStatus"]
attributes.forEach((item,index) => {
if (item === 'dateOfJoining') {
attributes[index] = 'Date Of Joining';
}
if (item === 'employmentStatus') {
attributes[index] = 'Employment Status';
}
console.log('-*-*',item);
});
而且甚至更好不使用任何 if else 和无限数量的句子:
let attributes =["dateOfJoining","employmentStatus","someOtherText","andAnotherText"]
attributes.forEach((item,index) => {
var result = item.replace( /([A-Z])/g," $1" );
attributes[index] = result.charAt(0).toUpperCase() + result.slice(1);
});
console.log(attributes);
// ["Date Of Joining","Employment Status","Some Other Text","And Another Text"]