从数组中删除不需要的符号

时间:2019-07-18 21:01:17

标签: javascript arrays reactjs

我有一个返回以下内容的数组:

["↵Onprogress↵Done"]

我要删除此符号:“↵”。

我已经尝试了各种方法,如下面的代码所示。我尝试调用变量到箭头值,以从数组中过滤出该变量。或者声明第二个空数组,然后遍历第一个空数组并将我想要的内容推送到第二个数组。我开始怀疑这是否是控制台默认返回的东西?如果有人能帮助我,将不胜感激。还请记住,当我通过索引返回数组时,它会给我'undefined'。

    addCardtoApp = event => {
        event.preventDefault();
        const card = {
            taskName: this.taskName.current.value, 
            taskDescription: this.taskDescription.current.value,
            taskPeriod: this.taskPeriod.current.value,
        };
        const cardStatus = this.taskStatus.current.value;
        let otherStatus = {
            otherStatus: this.taskStatus.current.innerText,
        };
        // otherStatus = otherStatus.otherStatus.replace('↵', '');
        const replacedStatus = otherStatus.otherStatus.replace(`${cardStatus}`, '');
        const convertedStatus = replacedStatus.split(' ');
        // let annoyingArrow = '↵'
        // console.log('↵')
        // let refinedStatus = convertedStatus
        // refinedStatus = refinedStatus.filter( item => item !== 'Todos' || 'Onprogress' || 'Done');
        let refinedStatus = []
        convertedStatus.forEach(function(item) {
            if (item === 'Todos' || 'Onprogress' || 'Done') { refinedStatus.push(item) };
        })
        console.log(refinedStatus);
        this.props.addCard(card, cardStatus, refinedStatus);
        event.currentTarget.reset();
    };

4 个答案:

答案 0 :(得分:1)

const arr = ["↵Onprogress↵Done"];
const newArray = JSON.parse(JSON.stringify(arr).replace(/↵/g, ''));

答案 1 :(得分:1)

某些控制台将换行符(#include <omp/HandEvaluator.h> #include <iostream> using namespace omp; int main() { HandEvaluator eval; Hand h = Hand::empty(); // Final hand must include empty() exactly once! h += Hand(51) + Hand(48) + Hand(0) + Hand(1) + Hand(2); // AdAs2s2h2c std::cout << eval.evaluate(h) << std::endl; // 28684 = 7 * 4096 + 12 } )表示为该符号(↵)。要从字符串中删除它们,可以执行以下操作:

\n

答案 2 :(得分:0)

如果我正确地理解了这个问题,那么您在正确的方向上:

// otherStatus = otherStatus.otherStatus.replace('↵', '');

我相信您的问题是您的字符串中有两个,并且您使用replace只会替换第一个。第二个仍然在那里。使用正则表达式代替它们:

otherStatus.otherStatus.replace(/↵/g, '');

更多信息here

  

注意:如果要替换值(而不是正则表达式),则仅替换该值的第一个实例。要替换所有出现的指定值,请使用全局(g)修饰符(请参见下面的“更多示例”)。

答案 3 :(得分:0)

通过拆分不需要的字符,可以分解字符串并同时删除字符。

>> (["↵Onprogress↵Done"])[0].split(/↵/).filter(Boolean)
[ "Onprogress", "Done" ]