我希望能够在react native数组中找到所选元素的索引。我尝试了indexOf(),但它总是返回-1。School
是我的数组,email
包含要查找其索引的元素的值。
deleteDetails = (email) => {
var index = School.indexOf(email);
}
我希望能够在react native数组中找到所选元素的索引。我尝试了indexOf(),但它总是返回-1。School
是我的数组,email
包含要查找其索引的元素的值。
deleteDetails = (email) => {
var index = School.indexOf(email);
}
School
是一个对象数组,因此您需要使用 findIndex
而不是 indexOf
var arr = [{
email: "test1@test.com",
remarks: "tt",
slno: 1
}, {
email: "test2@test.com",
remarks: "ttt",
slno: 2
}, {
email: "test3@test.com",
remarks: "tttt",
slno: 3
}, {
email: "test4@test.com",
remarks: "4",
slno: 4
}];
function getIndex(email) {
return arr.findIndex(obj => obj.email === email);
}
console.log(getIndex("test4@test.com"));
希望这能有所帮助!https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
deleteDetails = (email) => {
console.log(email);
console.log(School);
var index = School.indexOf(email);
}
var email = "abc@email.com";
var emails = ["abc@email.com", "def@email.com"];
console.log(emails.indexOf(email));
// expected output: 0
编辑:考虑到下面的评论,你的回调方法应该返回元素的索引。因此deleteDetails函数应该像这样。
deleteDetails(email, index) {
// code
}
让我们考虑使用Flatlist进行列表展示。
<FlatList
data={this.props.data}
extraData={this.state}
keyExtractor={this._keyExtractor}
renderItem={this._renderItem}
/>
_renderItem = ({item, index}) => (
<MyListItem
id={item.id}
onPressItem={this._onPressItem}
selected={!!this.state.selected.get(item.id)}
title={item.title}
onDeleteButtonPressed={(item, index) => this.deleteDetails(item,index)}
/>
);
您需要创建一个onDeleteButtonPressed属性,并在组件中调用它,以触发deleteDetails函数。
var email1 = email;
console.log(School);
var emails = School;
console.log(emails.indexOf(email1));
并且控制台输出结果为: 0: {email: "test1@test.com", remarks: "tt", slno: 1}
1: {email: "test2@test.com", remarks: "ttt", slno: 2}
2: {email: "test3@test.com", remarks: "tttt", slno: 3}
3: {email: "test4@test.com", remarks: "4", slno: 4}
success: "true"
length: 4
proto: Array(0)-1 - FahadrenderDataItem = ({item, index}) => {
return (
<TouchableWithoutFeedback
onPress = {() => Actions.testing2({ sayi : index })}>
<View style = {styles.allCointer}>
<View style = {styles.textContainer}>
<Text style={styles.textContainerTitle}> {item.Title} </Text>
<Text style={styles.textContainerText}> {item.Description} </Text>
</View>
<Image
style = {styles.image}
source = {{uri : item.Files[0].FileUrl}}
/>
</View>
</TouchableWithoutFeedback>
)}
renderDataItem = ({item, index}) => {
是您当前的索引值。
console.log(School)
的输出值,我想知道它是字符串还是对象。 - Prasun