22

我有一个字符串构建表单逗号分隔值,split用于获取每个值,然后我想在新行上显示每个值,但真正发生的是我在新行上获取每个值,除了最后两个显示一起在同一条线上。只是为了说清楚:

价值1

,值2

,值3

,值4,值5

这是我正在使用的功能:

_checkDates: function(dates) {
    if (dates != null)
    {
        var zzz = dates.split(',');
        var xxx = zzz.length;
        console.log(xxx);
        for (var i=0; i<=xxx; i++)
        {
            zzz[i] = zzz[i] + '<br />';
            return zzz;
        }
    }
    return dates;
}

为了清楚这是用 ExtJS 4 编写的,我几乎可以肯定在这种情况下问题是纯 JavaScript 并且与 ExtJS 4 无关,但无论如何,也许我错了。

那么有什么想法为什么会发生以及我如何使最后一个元素也进入新行?

4

3 回答 3

37

我已经修改了您的功能更清洁剂。因为 stefan 已经提到了您的错误。

function splitDate(dates) {
    if (dates != null)
    {
        var dates = dates.split(',');
        var xxx = dates.length;
        console.log(xxx);
        for (var i=0; i<xxx; i++)
        {
            dates[i] = dates[i];                    
        }
    }
    console.log(dates.join('\r\n'));
    return dates.join('\r\n');        
}

上面的函数你可以在一行中完成:

如果它是一个数组,您可以通过以下方式拆分为新行:

var arr = ['apple','banana','mango'];
console.log(arr.join('\r\n'));

如果是字符串:

var str = "apple,banana,mango";
console.log(str.split(',').join("\r\n"));
于 2015-11-21T10:14:41.483 回答
15

for 循环是可疑的。首先,您不会处理所有项目(正如@sarfraz 指出的那样,最后一个项目丢失了)。zzz其次,您将在 for 循环体中返回结果 ( ):

for (var i=0; i<=xxx; i++)
{
  zzz[i] = zzz[i] + '<br />';
  return zzz; // for-loop will stop here! resulting in ["value1<br />", "Value2", etc...]
}

在 JavaScript 中,您可以简单地“加入”数组:

return dates.split(',').join("<br />")

由于您只是替换字符串,您可以使用以下replace方法:

return dates.replace(",", "<br />");
于 2012-06-11T15:21:37.077 回答
2

链接:https ://snack.expo.io/GcMeWpPUX

import React from 'react'
import { SafeAreaView, Text, View, FlatList } from 'react-native'

export default class App extends React.Component {

    render() {
        return (
            <SafeAreaView style={{ flex: 1, alignItems: 'center', justifyContent: 'center',margin:20 }}>
                <FlatList
                    data={your_array_name}
                    keyExtractor={(item, index) => String(index)}
                    renderItem={({ item, index }) => {
                        return (
                            <Text style={{ color: '#ff8500', fontSize: 18 }}>{item.skills.splice(',').join("\n")}</Text>
                        )
                    }}
                />

            </SafeAreaView>
        )
    }

}


const your_array_name = [
    {
        id: 1,
        text: 'Lorem ipsum is simple dummy text for printing the line',
        skills: ['javascript', 'java']
    },
    {
        id: 2,
        text: 'Lorem ipsum is simple dummy text.',
        skills: ['javascript', 'java']
    }]
于 2019-08-19T10:41:54.030 回答