如何在javascript中将负数或正数设置为数组中的字符串

如何在javascript中将负数或正数设置为数组中的字符串,javascript,Javascript,场景是,我有两个数组,如下所示。我希望通过将负元素转换为“”,并从所有元素中删除小数点,来转换数组中的值。对于第二个相同但为正数的阵列,请参见此示例: Case1: var arr=["1.00","-2.05","-3P","-$8M","5P","6$","-5.0%"] /*logic to make arr[] as below: */ var arr2=["1","","","","5P","6$",""] console.log(arr2) Cas

场景是,我有两个数组,如下所示。我希望通过将负元素转换为“”,并从所有元素中删除小数点,来转换数组中的值。对于第二个相同但为正数的阵列,请参见此示例:

Case1: var arr=["1.00","-2.05","-3P","-$8M","5P","6$","-5.0%"]

    /*logic to make arr[] as below: */
        var arr2=["1","","","","5P","6$",""]
console.log(arr2)

    Case2: var arr=["1.00","-2.05","-3P","-$8M","5P","6$","-5.0%"]

    /*logic to make arr[] as below: */
        var arr2=["","-2","-3P","-$8M","","","-5%"]
console.log(arr2)


Note: I want to take string with decimal as  string without decimal  as well.

像这样的事情应该可以
//案例1
var arr11=[“1”、“-2”、“-3P”、“-800万美元”、“5P”、“6$”、“-5%”]
var arr12=arr11.map(e=>/^-/.test(e)?“”:e);
控制台日志(arr12);
//案例2
var arr21=[“1”、“-2”、“-3P”、“-800万美元”、“5P”、“6$”、“-5%”]
var arr22=arr21.map(e=>/^-/.test(e)?e:'';

控制台日志(arr22)一个简单的映射和indexOf检查就可以做到这一点

var-arr=[“1”、“-2”、“-3P”、“-800万美元”、“5P”、“6$”、“-5%”;
var arr2=arr.map(e=>e.indexOf(“-”>-1?”):e);
//案例2
var arr3=[“1”、“2”、“3P”、“800万美元”、“5P”、“6美元”、“5%”];
var arr4=arr.map(e=>e.indexOf(“-”>-1?e:”);

控制台日志(arr2、arr4)您可以测试字符串的第一个字符并返回项目或空字符串

函数GetPositiveValue(数组){ 返回array.map(a=>a.toString()[0]!='-'?a:''; } 函数GetNegativeValue(数组){ 返回array.map(a=>a.toString()[0]='-'?a:''; } 变量数组=[“1”、“-2”、“-3P”、“-800万美元”、“5P”、“6$”、“-5%”] log(getPositiveValues(数组)); log(getNegativeValue(数组))
.as console wrapper{max height:100%!important;top:0;}
以@baao为例,我想说,通过这个小小的修改,您可以实现您的目标:

var-arr=[“1”、“-2”、“-3P”、“-800万美元”、“5P”、“6$”、“-5%”;
var arr2=arr.map(value=>value.indexOf(“-”==0?”):convertStr(value));
//案例2
var arr3=[“1”、“2”、“3P”、“800万美元”、“5P”、“6美元”、“5%”];
var arr4=arr.map(value=>value.indexOf(“-”)==0?convertStr(value):”);
控制台日志(arr2、arr4);
函数convertStr(str){
变量值=str.split(“,”)
返回值[0]
}
解释 您可以使用该方法替换不需要的小数。然后,您可以使用该方法首先检测字符串是否包含破折号。使用该方法可以通过使用一些函数简化代码中的语句

源代码 在线测试
.

问题是?回答得很好,如果您允许,我将引用您的方法和我的方法来获得解决方案。这是一个加号
"use strict";

const removeDecimals = string => string.replace(/\.\d*/, "");

const positiveOnly = string => string.charAt(0) === "-" ? "" : string;

const negativeOnly = string => string.charAt(0) === "-" ? string : "";

const arr = ["1.00", "-2.05", "-3P", "-$8M", "5P", "6$", "-5.0%"];

const arrPositives = arr.map(positiveOnly).map(removeDecimals);

const arrNegatives = arr.map(negativeOnly).map(removeDecimals);

// arrPositives ["1", "", "", "", "5P", "6$", ""]
// arrNegatives ["", "-2", "-3P", "-$8M", "", "", "-5%"]